0
我有一個表,並希望確保它只包含一行。因此,我添加了幾個觸發器,但收到以下錯誤。在帶分隔符的文件中創建SQLite觸發器
應該如何使用分隔符,並且在兩個觸發器周圍只能有一個分隔符?
PS。不是問題的一部分,但希望評論我是否應該使用BEFORE或AFTER以確保我只有一行。
[email protected] /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
[email protected] /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 ;
SQLite沒有SET語句。將表限制爲一行將需要不同的算法。 –
@CL。啊,沒有'SET'。你認爲'NEW.id = OLD.id;'會工作嗎?另外,觸發器中的「BEFORE」或「AFTER」?謝謝 – user1032531
要問一個問題,請使用「提問」按鈕。 –