[英]MySQL / phpMyAdmin throws duplicity error on UNIQUE column when no duplicity occurs
我有下表:
CREATE TABLE pret_user (
pret_user_index INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
pret_user_fname VARCHAR(250) NOT NULL,
pret_user_lname VARCHAR(250) NOT NULL,
pret_user_email VARCHAR(250) NOT NULL,
pret_user_telegram_subscribe_token_hash VARCHAR(64) UNIQUE,
pret_user_telegram_subscribe_token_hash_valid_until INT(15),
pret_user_telegram_chat_id INT(15) UNIQUE,
pret_user_telegram_subscribed TINYINT(1) NOT NULL DEFAULT 0
);
當我嘗試手動更新pret_user_telegram_chat_id
的值時,即使沒有具有相同值的值(該表只有 4 行,所以我手動檢查),也會顯示以下錯誤警告 UNIQUE 列中的重復值。 我還注意到,當我嘗試將值設置為5163196961
時,警告是關於值2147483647
的。 任何關於可能導致這種情況的想法將不勝感激!
SQL:
UPDATE `d28748_admin`.`pret_user`
SET `pret_user_telegram_chat_id` = '5163196931`
WHERE `pret_user`.`pret_user_index` = 2
錯誤:
#1062 - Duplicate entry '2147483647' for key 'pret_user_telegram_chat_id'
為了解決這個問題,我暫時將列切換為 VARCHAR,之后問題就消失了,但我真的很想弄清楚為什么會發生這種情況,以防將來遇到類似的問題。
您的 pret_user_telegram_chat_id 太小了。 INT 的最大值是 2147483647 ,即使您指定了 15 個點。 你會想要 BIGINT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.