Bir tabloyu yalnızca bir satır olacak şekilde nasıl uygulayabilirim? Denediğim şey aşağıda. UPDATE
tetikleyici işe yarayabilir, ancak CREATE
tetikleyici kesinlikle olmaz. CREATE için SET
'u kullanmak istiyorum, ancak SET
SQLite tarafından desteklenmiyor.SQLite tablosunun yalnızca bir satır var olduğundan emin olun
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,
`offline` TINYINT NOT NULL,
`hash_config` CHAR(32) NOT NULL,
`hash_points` CHAR(32) NOT NULL,
PRIMARY KEY (`id`));
INSERT INTO config(id,subdomain,timezone,timeout,offline,hash_config,hash_points) VALUES(0,'subdomain','UTC',5,0,'hash_config','hash_points');
CREATE TRIGGER `config_insert_zero`
BEFORE INSERT ON `config`
FOR EACH ROW
BEGIN
-- SET NEW.id=0;
NEW.id=OLD.id;
END;
CREATE TRIGGER `config_update_zero`
BEFORE UPDATE ON `config`
FOR EACH ROW
BEGIN
-- SET NEW.id=0;
NEW.id=OLD.id;
END;
İkinci çözümünüzü seviyorum! 'RAISE' ile ilgili açıklama için teşekkürler. İkinci çözümünüzü vererek bir tetikleyici kullanmam gerekmeyeceği için, UPDATE kısıtlaması nasıl uygulanacak? Hepsini aç Hepsini kapa Bu Sayfada Belirtiler Yapılandırma a1> yapılandırma a1> CREATE TRIGGER config_update_zero BEGIN NEW.id = OLD.id; END; NEW.id = OLD.id; '? –
user1032531
UPDATE tetikleyicisine ne için ihtiyacınız var? –
'UPDATE config SET id = 2' izin vermek istemiyor. İkinci çözümünüz bunu engelliyor ve sadece bir tetikleyici ile nasıl yapıldığını merak ediyordu. – user1032531