【发布时间】:2016-06-26 21:35:06
【问题描述】:
我正在做自己的项目,但我遇到了问题。
我用查询创建了一个简单的表:
$sql_art = "CREATE TABLE articoli (
id INT(3) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
cod_int VARCHAR(6) NOT NULL,
nome VARCHAR(50) NOT NULL,
descr VARCHAR(100) NULL,
cod_barre INT(20) NOT NULL,
prezzo INT(5) NULL,
note VARCHAR(100) NULL,
reg_date TIMESTAMP,
UNIQUE (cod_barre)
)";
当我尝试添加新记录时
$sql_ins = "INSERT INTO `gestionale_db`.`articoli`
(`id`, `cod_int`, `nome`, `descr`, `cod_barre`, `prezzo`, `note`, `reg_date`)
VALUES
(NULL, 'A001', 'Cazzilli', 'ancora caldi', '4545415615456',
'215', 'su tisi', CURRENT_TIMESTAMP)";
返回错误
#1062 - 键“cod_barre”的重复条目“2147483647”
但显然 cod_barre 不等于这个值。
如果我尝试使用 UPDATE 修改记录,它会修改除 cod_barre 之外的所有值,这些值保持不变。
默认情况下,在php.ini 中,我使用InnoDB es ENGINE 和latin1_swedish_ci 作为char_set。
谁能帮我找出错误?
【问题讨论】:
-
@CodeGodie : 对于 mysql INT(x) = INT 总是(我的意思是 4 个字节)
-
@CodeGodie 不一样或者我无法理解,alexander.polomodov 解决了这个问题
标签: php mysql duplicates record