Hello List
I encounterd an strange behaviour with rowid and last_insert_rowid().
Here's the Code:
BEGIN TRANSACTION;
DROP TABLE IF EXISTS tb_language;
CREATE TABLE tb_language (
tag INTEGER PRIMARY KEY AUTOINCREMENT
,lang_code VARCHAR(7) NOT NULL
,desc_german VARCHAR(25) NOT NULL
,desc_native VARCHAR(25) NULL
);
CREATE TRIGGER trg_dont_change_language_tag BEFORE UPDATE OF tag ON
tb_language
BEGIN
SELECT(RAISE(IGNORE));
END;
CREATE TRIGGER trg_dont_delete_master_language BEFORE DELETE ON
tb_language WHEN(OLD.tag=(SELECT tb_master_language FROM tb_master_tag))
BEGIN SELECT(RAISE(IGNORE));
END;
DROP INDEX IF EXISTS idx_language;
CREATE UNIQUE INDEX idx_language ON
tb_language(lang_code,desc_german,desc_native);
INSERT INTO
tb_language(lang_code,desc_german,desc_native)
VALUES('de_DE','Deutsch','Deutsch (Standard)');
INSERT INTO
tb_language(lang_code,desc_german,desc_native)
VALUES('en_UK','Englisch (UK)','english (UK)');
INSERT INTO
tb_language(lang_code,desc_german,desc_native)
VALUES('fr_FR','Französisch','francais');
INSERT INTO
tb_language(lang_code,desc_german,desc_native)
VALUES('it_IT','Italienisch','Italiano');
INSERT INTO
tb_language(lang_code,desc_german,desc_native)
VALUES('es_ES','Spanisch','espaniol');
DROP VIEW IF EXISTS vw_last_insert_language_tag;
CREATE VIEW vw_last_insert_language_tag AS
SELECT CASE WHEN
(SELECT tag FROM tb_language WHERE rowid=last_insert_rowID()) IS NULL THEN 0
ELSE(SELECT tag FROM tb_language WHERE rowid=last_insert_rowID())END;
COMMIT;
(I don't think that there's a Problem with the triggers, but who can
tell...)
When I do a "SELECT tag FROM vw_last_insert_language_tag" I think 5
should be returned (since there are 5 INSERTS with 5 autoinc'd), but I
receive 1 as result. Is there anything else I have to deal with?
thx in advance
Uwe
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------