Я пытаюсь вставить строку с использованием Perl в таблицу из базы данных SQLite.В таблице есть столбец ID
с установленными свойствами AUTOINCREMENT
и PRIMARY KEY
.
Из схемы MY_TABLE
это вся информация относительно поля ID
:
ID [INT AUTO_INCREMENT] NOT NULL,
PRIMARY KEY (ID)
Я не хочу настраивать ID
для каждой новой добавленной строки, поэтому я попробовал несколько способов разрешить базе данных обновлять ее сам, но я получаю:
DBD:: SQLite :: st выполнить не удалось: MY_TABLE.ID не может быть NULL
use DBI;
my $db = DBI->connect("...");
my $sql = qq{
insert into MY_TABLE (ID, col_b, col_c, col_d)
values(?, ?, ?, ?)
}
my $st = $db->prepare($sql);
$st->execute(undef, 'val2', 'val3', 'val4');
Я также попытался полностью пропустить параметр из запроса и из параметров, но с теми же результатами.Помещение 0
вместо undef
вставляет фактическое значение (которое я не хочу, я хочу увеличивать автоматически).
Чего мне не хватает?