Предположительно, ваше testtable1
имеет определение, разумно похожее на (псевдо-запись):
testtable1
------------
ID INT PK AUTOINCREMENT
SomeColumn NVARCHAR
AnotherColumn NVARCHAR
Так что, когда вы делаете это:
INSERT INTO testtable1 VALUES ('', 'zzz', 'yyy')
Вы явно говоритебаза данных для вставки пустой строки в столбец INT
.Что не сработает.
Столбец AUTOINCREMENT
не нужно указывать, что есть пустое значение, он будет автоматически увеличиваться.Просто укажите значения, которые вы вставляете:
INSERT INTO testtable1 (SomeColumn, AnotherColumn) VALUES ('zzz', 'yyy')
Пусть ядро базы данных обрабатывает столбец ID
.В общем, всегда стоит явно указать столбцы, в которые вы вводите значения или из которых вы выбираете значения.Это делает код более легким для чтения / поддержки и уменьшает вероятность ошибок / ошибок, если определение таблицы когда-либо немного изменяется.