每天重置自动增量值Mysql

时间:2014-04-19 16:44:27

标签: php mysql lamp

您好我正在使用LAMP服务器在基于服务器的POS上工作,我希望收据栏(标记为"票证")每天重置,所以我每天都会收到1号收据,我创建了一个表

CREATE TABLE maestra(ticket INT KEY AUTO_INCREMENT,cliente_id INT,Movimiento DOUBLE,Fecha DATETIME,tpago INT)

但是值不会使用

重置
ALTER TABLE maestra AUTO_INCREMENT = 1;

因此我可以使用sh脚本重置它,我该怎么做?

提前

3 个答案:

答案 0 :(得分:1)

我不认为你可以在你的表创建中做到这一点,你提到ticketKEY(必须是因为它是auto_increment)。所以它必须是独一无二的。

CREATE TABLE maestra
(
ticket INT KEY AUTO_INCREMENT, <-- Here
cliente_id INT,
Movimiento DOUBLE,
Fecha DATETIME,tpago INT
)

现在,即使ALTER TABLE maestra AUTO_INCREMENT = 1;成功,您尝试插入ticket1的新行时,也会抛出错误can not insert duplicate value

只有我看到的选项,创建一个每天运行的脚本(可能是预定的作业)并将数据从此表传输到辅助表,然后开始插入新的。

insert into sec_table
select * from maestra

(OR)

在您的表格中有一个datetime列,用于存储故障单注册的日期/时间。

答案 1 :(得分:1)

AUTO_INCREMENT列也必须为PRIMARY KEY个。如果你没有明确指定,MySQL会默默地添加它。所以你想要的是不可能的,因为根据定义PRIMARY KEYUNIQUE所以你不能拥有多个具有相同票号的记录。

答案 2 :(得分:-1)

为什么不截断表?

TRUNCATE TABLE maestra;

它将删除所有表格数据并将自动递增计数器重置为0.