您好我正在使用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脚本重置它,我该怎么做?
提前
答案 0 :(得分:1)
我不认为你可以在你的表创建中做到这一点,你提到ticket
为KEY
(必须是因为它是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;
成功,您尝试插入ticket
值1
的新行时,也会抛出错误can not insert duplicate value
只有我看到的选项,创建一个每天运行的脚本(可能是预定的作业)并将数据从此表传输到辅助表,然后开始插入新的。
insert into sec_table
select * from maestra
(OR)
在您的表格中有一个datetime
列,用于存储故障单注册的日期/时间。
答案 1 :(得分:1)
AUTO_INCREMENT
列也必须为PRIMARY KEY
个。如果你没有明确指定,MySQL会默默地添加它。所以你想要的是不可能的,因为根据定义PRIMARY KEY
是UNIQUE
所以你不能拥有多个具有相同票号的记录。
答案 2 :(得分:-1)
为什么不截断表?
TRUNCATE TABLE maestra;
它将删除所有表格数据并将自动递增计数器重置为0.