[英]AUTO_INCREMENT in mysql can be signed by default?
據我所知,默認情況下,下面的column
將被signed int
。
id INT(6);
下面指定的auto increment column
可以默認簽名? Mysql從1開始為自動增量列的值。
id INT(6) AUTO_INCREMENT PRIMARY KEY
是的,您可以使用signed int創建自動增量主鍵。 試試這個:
CREATE TABLE mytable( id int(6) AUTO_INCREMENT PRIMARY KEY);
然后以下查詢都有效
INSERT INTO mytable values();
INSERT INTO mytable values(-10);
這將導致表格的行為-10,另一行的值為1。 但是如果你嘗試這個,你會遇到問題:
ALTER TABLE mytable AUTO_INCREMENT=-10;
是的,您不能擁有負數的自動增量值。
經過大量搜索......我找到了一個名為BEFORE INSERT的TRIGGER解決方案! 我發現了這個: https : //stackoverflow.com/a/43441586/2282880
這是我的變體:
CREATE TRIGGER `invertID`
BEFORE INSERT ON `<table>`
FOR EACH ROW SET NEW.id=CONCAT("-", (
SELECT `auto_increment`
FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = '<table>')
)
它對我很好。
這是我發現在兩個方向上同步兩個數據庫的最佳方式,兩個數據庫具有相同的模式,在我的表中沒有相同的ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.