我要每天重置次數,Mysql的復位數字每天
表:
CREATE TABLE tickets(
ticketId varchar(10),
moviesname text,
date DATE,
seatnumber INT(5),
PRIMARY KEY(ticketId));
有什麼SQL語法每日重置ID?
我要每天重置次數,Mysql的復位數字每天
表:
CREATE TABLE tickets(
ticketId varchar(10),
moviesname text,
date DATE,
seatnumber INT(5),
PRIMARY KEY(ticketId));
有什麼SQL語法每日重置ID?
我看到2種可能的方法:
1.使用MyISAM表的特殊auto_increment特點:
對於MyISAM表,你可以在一個多列索引在二次 列指定AUTO_INCREMENT 。在這種情況下,AUTO_INCREMENT列的生成值 計算爲 MAX(auto_increment_column)+ 1 WHERE prefix = given-prefix。
2.蜜糖您目前最大()查詢,以確定下一個值
使用下面的查詢來獲取下一個ticketid:
select coalesce(max(ticketid),1) from tickets where date=curdate()
的地方標準,確保每天ticketid值將重新啓動。 coalesce()用於每天將第一個數字指定爲第一個id,因爲如果沒有滿足where條件的記錄,max()將返回null。
但是,此解決方案的風險是多個語句同時執行可能會產生相同的ID。您可以通過在應用程序代碼中進行適當的錯誤處理來處理這種情況(例如,嘗試再次插入),或者使用顯式鎖將插入序列化到票據表中。
所以有幫助,這就是我的意思。 –
所以你想重新設置一個像下面這樣的自動增量字段? http://stackoverflow.com/questions/8923114/how-to-reset-auto-increment-in-mysql – xQbert
但是,如何ID不是主要的,而不是自動增量模式? –
那麼你現在如何確定id的價值應該是什麼? – Shadow