[英]Inserting into MySQL with Perl
我在Perl中有以下綁定查詢。
$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute($val1, $val2);
但是,如果該tbl_name
表中的第一個列是自動增量主鍵怎么辦? 我該怎么辦?
這比Perl更像是一個SQL問題。
如何處理[自動遞增]欄位?
完全不指定它。 明確命名所有您具有值的列,並忽略其他列。
這將使它們采用默認值,如果是自動增量字段,則為下一個增量。
$sth = $dbh->prepare("insert into tbl_name (column_name) values (?)");
$sth->execute($val2);
您可以僅給出第二列的值,如下所示
my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)');
$sth->execute($val2);
正如其他人所說的那樣,您只是沒有通過明確指出要插入的字段來指定字段的值,因此,正如他們所說:
my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)');
$sth->execute($val2);
會足夠好。
我只想補充一點,您可以使用
$dbh->{'mysql_insertid'}
獲取分配給該行的ID,這通常很方便。
$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute(undef, $val2);
要么
$sth = $dbh->prepare("insert into tbl_name (col2_name) values (?)");
$sth->execute($val2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.