據我所知,低於column
默認爲signed int
。mysql中的AUTO_INCREMENT可以默認簽名嗎?
id INT(6);
以下指定的auto increment column
可以在默認情況下進行簽名嗎? Mysql從1開始爲自動增量列設置值。
id INT(6) AUTO_INCREMENT PRIMARY KEY
據我所知,低於column
默認爲signed int
。mysql中的AUTO_INCREMENT可以默認簽名嗎?
id INT(6);
以下指定的auto increment column
可以在默認情況下進行簽名嗎? Mysql從1開始爲自動增量列設置值。
id INT(6) AUTO_INCREMENT PRIMARY KEY
是的,你可以創建一個帶有符號整數的自動遞增主鍵。試試這個:
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。
爲什麼你不試試? – Jens