【问题标题】:Inserting into MySQL with Perl用 Perl 插入 MySQL
【发布时间】:2016-04-23 18:37:43
【问题描述】:

我在 Perl 中有以下绑定查询。

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

但是,如果tbl_name 表中的第一列是自增主键怎么办?我该如何处理该字段?

【问题讨论】:

    标签: mysql database perl sql-insert


    【解决方案1】:

    这更像是一个 SQL 问题而不是 Perl 问题。

    如何处理[自动增量]字段?

    根本不要指定它。明确命名您拥有值的所有列并忽略其他列。

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

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

    【讨论】:

      【解决方案2】:

      你可以只给出第二列的值,像这样

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

      【讨论】:

        【解决方案3】:

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

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

        会足够好。

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

        $dbh->{'mysql_insertid'}
        

        获取分配给行的 id,这通常会派上用场。

        【讨论】:

          【解决方案4】:
          $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);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-12-08
            • 2019-12-19
            • 2013-10-27
            • 2016-09-05
            • 2014-11-03
            • 1970-01-01
            • 2013-05-21
            • 1970-01-01
            相关资源
            最近更新 更多