使用分隔符在文件中创建SQLite触发器

时间:2015-10-13 12:43:25

标签: sqlite triggers delimiter

我有一张桌子,希望确保它只包含一行。因此,我添加了几个触发器,但收到以下错误。

如何使用分隔符,我可以在两个触发器周围只有一个分隔符?

PS。不是问题的一部分,但我希望评论我是否应该使用BEFORE或AFTER以确保我只有一行。

pi@raspberrypi /var/www $ sqlite3 testing.db < testing.sql
Error: near line 81: near "DELIMITER": syntax error
Error: near line 87: near "$$": syntax error
Error: near line 95: near "$$": syntax error
pi@raspberrypi /var/www $


CREATE TABLE IF NOT EXISTS `config` (
  `id` TINYINT NOT NULL DEFAULT 0,
  `subdomain` VARCHAR(45) NOT NULL,
  `timezone` CHAR(3) NOT NULL,
  `timeout` TINYINT NOT NULL,
  `hash_config` CHAR(32) NOT NULL,
  `hash_points` CHAR(32) NOT NULL,
  PRIMARY KEY (`id`));

DELIMITER $$
CREATE TRIGGER `config_insert_zero`
BEFORE INSERT ON `config`
FOR EACH ROW
BEGIN
   SET NEW.id=0;
END $$

CREATE TRIGGER `config_update_zero`
BEFORE UPDATE ON `config`
FOR EACH ROW
BEGIN
   SET NEW.id=0;
END $$

DELIMITER ;

1 个答案:

答案 0 :(得分:1)

SQLite没有自定义分隔符。

SQL标准说语句是用分号分隔的,所以这就是SQLite使用的。 (它足够聪明,可以检测触发器体的终点。)