gpt4 book ai didi

mysql - 插入带有自动增量列的 MySQL 表

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:09 24 4
gpt4 key购买 nike

我正在尝试使用 Perl 脚本将数据插入我的数据库,但我的代码有问题。

我之前创建了一个包含八列的表 annotations,第一列是一个自动递增的主键。我还需要最后两列在每行中填充 1DB

我在提示中启动程序时遇到的错误是:

DBD::mysql::st execute failed: Incorrect integer value: 'NULL' for column 'id_anntion' at row 1 at C:\Users\Jean Baptiste\cours\Base de donnÚes\Dossier\programmes\remplissage_table_projet.pl line 25, line 1.
Erreur insertion : Incorrect integer value: 'NULL' for column 'id_anntion' at row 1 at C:\Users\Jean Baptiste\cours\Base de donnÚes\Dossier\programmes\remplissage_table_projet.pl line 25, line 1.

这是代码:

use DBI;
use strict;
use utf8;

use warnings;

my ($ligne, @tab);

# Connexion à la base de données
my $dbh = DBI->connect( "DBI:mysql:database=projet;host=localhost", "root", "" )
or die "Erreur de connexion : " . DBI->errstr();


# Gestion de l'encodage UTF-8
$dbh->{'mysql_enable_utf8'} = 1;
$dbh->do('set names utf8');

# Préparation d'une requête pour l'insertion de valeurs dans la BDD
my $ins = $dbh->prepare("INSERT INTO annotations VALUES (?, ?, ?, ?, ?, ?, ?, ?)")
or die "Probleme preparation : " . $dbh->errstr();

open( FILEIN, '<:encoding(utf8)', 'alsace_DB.csv' );
while ( $ligne = <FILEIN> ) {
chomp($ligne);
@tab = split( /;/, $ligne );
$ins->execute("NULL", $tab[0], $tab[1], $tab[2], $tab[3], $tab[4], "1", "DB")
or die "Erreur insertion : " . $ins->errstr();
}
close(FILEIN);

# Déconnexion de la base de données
$dbh->disconnect();

我知道与 "NULL" 部分有关,但我不知道是什么。我认为这不是唯一的问题。

最佳答案

您正在尝试将字符串 "NULL" 插入整数

如果你想覆盖自动增量行为,那么在这里使用一个数字,比如 100

如果您希望 MySQL 生成数字,则使用零 0 或者,如果该列是 NOT NULL 那么您可以使用 undef

关于mysql - 插入带有自动增量列的 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com