1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| DROP TABLE IF EXISTS ma_table;
CREATE TABLE ma_table (idate integer PRIMARY KEY NOT NULL, sdate date, value text);
CREATE TRIGGER tg1 BEFORE INSERT ON ma_table
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'Ce mois existe deja.')
WHERE (SELECT 1 FROM ma_table WHERE
strftime('%Y%m',sdate) = strftime('%Y%m',NEW.sdate)) IS NOT NULL;
END;
CREATE TRIGGER tg2 AFTER INSERT ON ma_table
FOR EACH ROW BEGIN
UPDATE ma_table SET idate = strftime('%Y%m',NEW.sdate) WHERE idate=NEW.idate;
END;
INSERT INTO ma_table (sdate,value) VALUES ( '2008-01-02','a');
INSERT INTO ma_table (sdate,value) VALUES ( '2008-05-15','b');
INSERT INTO ma_table (sdate,value) VALUES ( '2008-06-25','c');
INSERT INTO ma_table (sdate,value) VALUES ( '2008-06-05','d');
SELECT * FROM ma_table; |
Partager