我创建了一个带有 2 个主键的表,当我尝试一次删除几条记录时,但整个表都被擦除了。这是我尝试过的代码,我不确定它为什么会这样做。任何帮助都将受到欢迎。
BEGIN TRANSACTION;
DROP TABLE NAMES1;
/* Create a table called NAMES1 */
CREATE TABLE NAMES1(Id integer, Id2 integer, Name text,PRIMARY KEY(Id,Id2));
/* Create few records in this table */
INSERT INTO NAMES1 VALUES(1,1,'Tom');
INSERT INTO NAMES1 VALUES(2,1,'Lucy');
INSERT INTO NAMES1 VALUES(3,4,'Frank');
INSERT INTO NAMES1 VALUES(4,1,'Jane');
INSERT INTO NAMES1 VALUES(5,6,'Robert');
COMMIT;
/* Display all the records from the table */
SELECT Count(*) FROM NAMES1; /* Returns 5 */
DELETE FROM NAMES1 WHERE (Id AND Id2) in ((2 AND 2),(1 AND 1),(2 AND 1));
SELECT Count(*) FROM NAMES1; /* Returns 0 */
根据我的计算,返回的计数应该是 3,而不是 0。