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

Creating SQLite trigger in file with delimiter

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

应该如何使用定界符,我能否在两个触发器周围只使用一个定界符?

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 ;

SQL站点没有自定义分隔符。

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