当没有值相同时,我得到一个非常奇怪的重复输入错误...
INSERT INTO offer_status (id,user_id,sql_id,disabled)
VALUES ('8854011812','8854','11812','0')
Run Code Online (Sandbox Code Playgroud)
返回:
#1062- 键'PRIMARY'的重复条目'2147483647'
这对我来说根本没有意义!
注意:此代码通常不会执行,我只是尝试调试.通常在我的PHP中我有:
$offer=$campid;
$id=$user_id.'0'.$offer;
$sql="INSERT INTO offer_status (id,user_id,sql_id,disabled) VALUES (?,?,?,?)
ON DUPLICATE KEY UPDATE disabled=VALUES(disabled)";
$db->prepare($sql)->execute(array($id, $user_id, $offer, 0));
Run Code Online (Sandbox Code Playgroud)
id是主键.这里发生了什么?
补充:结果DESC offer_status:
Field Type Null Key Default Extra
id int(12) NO PRI NULL
user_id int(12) NO NULL
sql_id int(12) NO MUL NULL
favor tinyint(4) NO 0
disabled tinyint(4) NO 0
pref int(2) NO 0
Run Code Online (Sandbox Code Playgroud)
jue*_*n d 13
8854011812超出int范围.它将被最大int数字取代2147483647.
第二次插入比intmax 更大的值时,将出现重复键错误.
如果您需要如此高的数字,可以将数据类型更改为bigint.
| 归档时间: |
|
| 查看次数: |
813 次 |
| 最近记录: |