Let's go, based on Karol's previous example. 

Open two isql sessions (isql1 and isql2) connected to the same database, and 
follow the sequence of commands in this order:

isql1:
CREATE TABLE A
(
ID BIGINT NOT null PRIMARY KEY);

CREATE TABLE B
(
ID BIGINT NOT null PRIMARY KEY,
ID_A BIGINT NOT NULL
);

ALTER TABLE B ADD constraint FK_B__A FOREIGN KEY(ID_A) REFERENCES A(ID) ON 
UPDATE CASCADE ON DELETE CASCADE;

commit;
INSERT INTO A (ID) VALUES (1);

isql2:
commit; -- to be sure that if there is active transaction, it will be ended now
select * from a; -- just to be sure that snapshot transaction is started now

isql1:
commit;

isql2:
INSERT INTO B (ID, ID_A) VALUES (1, 1); -- This should break, since master 
should not be visible for this transaction, but FB will accept it
commit;

No errors at all! 

[]s
Carlos
http://www.firebirdnews.org
FireBase - http://www.FireBase.com.br

DS> 06.09.2019 23:00, Carlos H. Cantu wrote:
>> Sending screenshots of the isql sessions will not help, since what really 
>> matters is the 
>> time of starting/commit the transactions.

DS>    You don't need to send screenshots. Send script. Second instance of isql 
can be run in
DS> the right moment using command "shell".
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to