用Perl插入MySQL

用Perl插入MySQL,mysql,database,perl,sql-insert,Mysql,Database,Perl,Sql Insert,我有以下Perl中的绑定查询 $sth = $dbh->prepare("insert into tbl_name values(?,?)"); $sth->execute($val1, $val2); 但是,如果tbl\u name表中的第一个列是自动递增主键,该怎么办?如何处理该字段?您可以只给出第二列的值,如下所示 my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)'); $sth->ex

我有以下Perl中的绑定查询

$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute($val1, $val2);

但是,如果
tbl\u name
表中的第一个列是自动递增主键,该怎么办?如何处理该字段?

您可以只给出第二列的值,如下所示

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);  

这与其说是Perl问题,不如说是SQL问题

如何处理[自动递增]字段

完全不要指定它。显式命名所有具有值的列,并忽略其他列

这将使它们采用默认值,在自动增量字段的情况下,默认值将是下一个增量

$sth = $dbh->prepare("insert into tbl_name (column_name) values (?)");
$sth->execute($val2);

这与其说是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); 
就足够好了

我只想补充一点,你可以使用

$dbh->{'mysql_insertid'}

要获取分配给该行的id,这通常很方便。

正如其他人所说,您只是不通过明确插入哪些字段来指定字段的值,正如他们所说:

my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)');
$sth->execute($val2); 
就足够好了

我只想补充一点,你可以使用

$dbh->{'mysql_insertid'}
获取分配给行的id,这通常很方便