小编aam*_*dia的帖子

MySQL - 插入一条主键为空的记录,适用于一台服务器,而不是另一台

我在 MySQL 服务器(版本 5.5.27,安装了 EasyPHP 用于开发)中有一个表,它有一个带有 Auto_Increment 的 ID,它的数据类型是 INT(11)。

当我尝试使用此语句插入记录时,它可以工作。

insert into factclientes (IDFactClientes, IDTercero, SubTotal, IVA, Total)
        values ('', '3', '2500.00', '400.00', '2900.00')
        ON DUPLICATE KEY UPDATE IDTercero = values(IDTercero),
                SubTotal = values(SubTotal), 
                IVA = values(IVA), 
                Total = values(Total)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在我的生产服务器(版本 5.6.17,独立安装在另一台机器上)上插入相同的记录时,它会引发错误:

 Incorrect integer value: '' for column 'IDFactClientes' at row 1
Run Code Online (Sandbox Code Playgroud)

我知道这是因为主键 ID 'IDFactClientes' 有一个空值。我这样做是因为我对 INSERT 和 UPDATE 使用了相同的语句。如果我的程序不知道并且没有指定 IDFactClientes,我想要一个新记录,如果我的程序已经知道 ID,并且指定了我想要更新记录。

奇怪的是它可以在我的开发机器上运行,但不能在我的生产服务器上运行。

是不是缺少什么设置??我怎么能解决这个问题??我的数据库的所有表都有完全相同的问题,我不想修改程序中的所有语句......如果可能的话

先感谢您!!

mysql string insert-update auto-increment

3
推荐指数
1
解决办法
2691
查看次数

标签 统计

auto-increment ×1

insert-update ×1

mysql ×1

string ×1