1

我们如何限制一个表有固定的行数?例如,如果我将 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的新手,请帮助我。

4

1 回答 1

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演示

于 2013-06-25T08:48:24.177 回答