如何限制要存储在Sqlite3中的行数?

时间:2013-06-25 08:08:20

标签: sql sqlite

我们如何限制表具有固定行数?例如,如果我将Limit设置为20,则可以在其中插入20行,并且在该表之后应指示已超出限制。 如果我们使用这样的触发器,我们就无法在每次输入后获得行数。

 CREATE TRIGGER log AFTER INSERT ON TEST_TABLE
 BEGIN
 INSERT INTO TEST_TABLE VALUES(....);
 SELECT COUNT(COL) FROM TEST_TABLE;
 END;

是sqlite的新手,请帮助我们。

1 个答案:

答案 0 :(得分:3)

你在找这个吗?

CREATE TRIGGER tg_limit 
BEFORE INSERT ON Table1
FOR EACH ROW
WHEN 15 < (SELECT COUNT(*) FROM Table1) + 1
BEGIN
  SELECT RAISE(ABORT, 'Limit has been exceeded');
END

这是 SQLFiddle 演示

CREATE TRIGGER tg_limit 
BEFORE INSERT ON Table1
FOR EACH ROW
BEGIN
  SELECT RAISE(ABORT, 'Limit has been exceeded')
   WHERE 15 < (SELECT COUNT(*) FROM Table1) + 1;
END

这是 SQLFiddle 演示