我有MySQL表名Order_Ticket_Number如下:
CREATE TABLE order_ticket_number (
id_store_ticket int(10) NOT NULL,
id_order_ticket int(3) ZEROFILL AUTO_INCREMENT NOT NULL,
id_date_order timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
id_order int(10) unsigned NOT NULL default 0,
PRIMARY KEY (id_store_ticket,id_order_ticket,id_date_order)
)
ENGINE=myisam DEFAULT CHARSET=utf8;
每次我从正在开发的Python应用程序中打开一个商店时,我想重新启动id_order_ticket
的值。 id_order_ticket以001,002开始......我希望每天都能以001开始 SOD(开始日期)。两次ex.id_order_ticket = 001
不会发生冲突,因为id_date_order也是PK and Engine=myisam.
谢谢
答案 0 :(得分:2)
如果我理解正确,您需要更改主键中列的顺序并使用DATE
列,而不是时间戳:
PRIMARY KEY (id_store_ticket, id_date, id_order_ticket)
示例,在 SQL-Fiddle 中测试:
CREATE TABLE order_ticket_number
( id_store_ticket int(10) NOT NULL,
id_date DATE NOT NULL,
id_order_ticket int(3) ZEROFILL AUTO_INCREMENT NOT NULL,
id_date_order timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
id_order int(10) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (id_store_ticket, id_date, id_order_ticket)
)
ENGINE = MyISAM ;
日期不能具有DEFAULT CURRENT_TIMESTAMP
属性,因此yuo必须确保日期和时间戳列具有一致的值。
答案 1 :(得分:0)
Mysql文档声明这是不可能的:
更改要用于new的AUTO_INCREMENT计数器的值 行,执行此操作:
ALTER TABLE t2 AUTO_INCREMENT = value;您无法将计数器重置为 小于或等于任何已经使用过的值。