我使用这个SQL创建了一个表:
CREATE TABLE import_xlsx (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
date DATETIME,
pair VARCHAR(10),
action VARCHAR(5),
volume DECIMAL(20,8),
order_price DECIMAL(20,8),
trading_price DECIMAL(20,8),
status VARCHAR(20),
CONSTRAINT table_unique UNIQUE (date, pair, action));
我有INSERT
:
INSERT INTO binance_xlsx (date, pair, action, volume, order_price, trading_price, status)
VALUES('2018-05-14 13:58:54', 'ETHUSDT', 'SELL', '0.1', '725.0', '724.95', 'Filled')
ON DUPLICATE KEY UPDATE
status = VALUES(status);
我试图故意插入重复的行,数字ID会自动递增。但是如果插入了新行,那么行数仍然不应该自动增加吗?
结果如下:
+----+---------------------+---------+--------+------------+--------------+---------------+--------+
| id | date | pair | action | volume | order_price | trading_price | status |
+----+---------------------+---------+--------+------------+--------------+---------------+--------+
| 1 | 2018-05-14 13:58:53 | ETHUSDT | BUY | 0.09889000 | 725.00000000 | 724.95000000 | Filled |
| 11 | 2018-05-14 13:58:53 | ETHUSDT | SELL | 0.10000000 | 725.00000000 | 724.95000000 | Filled |
| 13 | 2018-05-14 13:58:54 | ETHUSDT | SELL | 0.10000000 | 725.00000000 | 724.95000000 | Filled |
+----+---------------------+---------+--------+------------+--------------+---------------+--------+
如何按顺序保持id
自动递增?
答案 0 :(得分:1)
这只是因为您的主键是自动增加的列,因此当您尝试插入时,您永远不会获得重复的键并插入新行。这是id
列的创建声明:
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY
您应该更改它并将主键设为(date, pair, action)
值,以便它可以正常工作