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