我目前正在使用php和mysql。我想尝试的是,如果我有10条数据库的“稳定”记录,而在同一个.php文件中,我有一些文本框以便输入,那么我输入的内容将被保存到数据库中,但是每次我进入该页面时,只有10条记录将被删除和重新创建,而我输入的记录不会被删除。有可能吗?我知道听起来很奇怪,但我正在读这本书,而且有这样的任务。嗯,任务没有明确提到是否应该全部删除,或者仅仅是十个“稳定”的记录。
我在这里说得不太清楚吗?
有相当多的脚本,我已经做了,所以我没有粘贴在这里的代码,并想知道我是否可以先得到一个概念。
发布于 2013-03-26 14:13:01
我能理解你说的“稳定”。MySQL中没有明确的机制来隐式地控制MySQL可以使用LIMIT删除行的顺序。实际上,MySQL复制并不是事务安全的。
确保有序删除行的唯一方法是通过不依赖auto_increment列的主键或唯一键进行删除。
示例
假设您想要删除公司表中的前10名员工(裁员确实会造成伤害,这只是一个例子)
CREATE TABLE emp
(
id INT NOT NULL AUTO_INCREMENT,
empid INT NOT NULL,
...
PRIMARY KEY (id),
UNIQUE KEY (empid)
);您可以安全地删除这10名员工如下:
CREATE TABLE empids_to_delete
SELECT empid FROM emp ORDER BY empid LIMIT 10;
ALTER TABLE empids_to_delete ADD PRIMARY KEY (empid);
DELETE B.* FROM empids_to_delete A INNER JOIN emp B USING (empid);
DROP TABLE empids_to_delete;只要您在此表之外创建empid,这将是很棒的。这不会给复制奴隶带来问题,即使母版上的auto_increment序列与奴隶的完全不同。
https://dba.stackexchange.com/questions/37580
复制相似问题