You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CREATE TABLE DOC1 (ID INTEGER NOT NULL,
NAME VARCHAR(1024),
DATA VARCHAR(1024),
PRIMARY KEY (ID));
CREATE TABLE DOC2 (ID INTEGER NOT NULL,
NAME VARCHAR(1024),
DATA VARCHAR(1024),
PRIMARY KEY (ID));
CREATE VIEW V (ID, NAME, DATA)
AS
SELECT * FROM DOC1
UNION ALL
SELECT * FROM DOC2;
SET TERM ^;
CREATE TRIGGER V_INS FOR V BEFORE INSERT
AS
DECLARE VARIABLE I INTEGER;
BEGIN
I = MOD(http://NEW.ID, 2);
if (I = 0) THEN
INSERT INTO DOC1 VALUES (http://NEW.ID, http://NEW.NAME, NEW.DATA);
else if (I = 1) THEN
INSERT INTO DOC2 VALUES (http://NEW.ID, http://NEW.NAME, NEW.DATA);
END^
SET TERM ;^
COMMIT WORK;
INSERT INTO V (ID, NAME, DATA) VALUES (0, '0', '0');
SQL> recreate table test(x int, y int);
SQL> recreate view v_test as select t.x, t.y, t.x+t.y as z from test t;
SQL> insert into v_test values(1,1);
Statement failed, SQLSTATE = 21S01
Dynamic SQL Error
-SQL error code = -804
-Count of read-write columns does not equal count of values
Submitted by: @romansimakov
CREATE DATABASE 'upd_view.fdb' PAGE_SIZE 16384;
CREATE TABLE DOC1 (ID INTEGER NOT NULL,
NAME VARCHAR(1024),
DATA VARCHAR(1024),
PRIMARY KEY (ID));
CREATE TABLE DOC2 (ID INTEGER NOT NULL,
NAME VARCHAR(1024),
DATA VARCHAR(1024),
PRIMARY KEY (ID));
CREATE VIEW V (ID, NAME, DATA)
AS
SELECT * FROM DOC1
UNION ALL
SELECT * FROM DOC2;
SET TERM ^;
CREATE TRIGGER V_INS FOR V BEFORE INSERT
AS
DECLARE VARIABLE I INTEGER;
BEGIN
I = MOD(http://NEW.ID, 2);
if (I = 0) THEN
INSERT INTO DOC1 VALUES (http://NEW.ID, http://NEW.NAME, NEW.DATA);
else if (I = 1) THEN
INSERT INTO DOC2 VALUES (http://NEW.ID, http://NEW.NAME, NEW.DATA);
END^
SET TERM ;^
COMMIT WORK;
INSERT INTO V (ID, NAME, DATA) VALUES (0, '0', '0');
INSERT INTO DOC1 VALUES (1, '1', '1');
INSERT INTO V VALUES (2, '2', '2'); -- << failed
Commits: 9b228fb
The text was updated successfully, but these errors were encountered: