У меня были проблемы с настройкой ON UPDATE CASCADE
для правильной работы, я не получаю синтаксических ошибок, но при каждом обновлении tableA.a1 в tableB не происходит никаких изменений, и я не уверен, что происходит.При отображении таблицы A она была обновлена, а таблица B - нет.
Вот мой код:
CREATE TABLE tableA
(
a1 int NOT NULL,
a2 int NOT NULL,
a3 int NOT NULL,
a4 varchar(50) NOT NULL UNIQUE,
a5 TEXT,
a6 DECIMAL(38,2) NOT NULL,
CHECK (a6 > -99999.99 AND a6 < 99999.99),
CHECK (a3 >= 1 AND a3 <= 10),
PRIMARY KEY (a1,a2)
);
CREATE TABLE tableB
(
b1 int NOT NULL IDENTITY(1,1) PRIMARY KEY,
b2 int NOT NULL DEFAULT 1,
b3 int NOT NULL DEFAULT 1,
b4 char(10) NOT NULL,
b5 date,
);
INSERT INTO tableB (b4,b5)
VALUES (45, '1980-12-17');
INSERT INTO tableA (a1, a2, a3, a4, a5, a6)
VALUES (1, 2, 1, 4, 'hello', 38.32);
ALTER TABLE tableB WITH NOCHECK
ADD CONSTRAINT b2f
FOREIGN KEY (b2, b3) REFERENCES tableA(a1, a2)
ON DELETE SET DEFAULT
ON UPDATE CASCADE;
ALTER TABLE tableA WITH NOCHECK
ADD FOREIGN KEY (a3) REFERENCES tableB(b1);
UPDATE tableA
SET a1 = 5;
SELECT *
FROM tableA;
SELECT *
FROM tableB;
Вывод данных в таблицы
