В MySQL, на удалении каскада не работает

, аналогично на удалении каскада, не работающих в MySQL , но что-то не имеет права:

Ansi Way

-- test delete cascade
CREATE TABLE t1(
    id SERIAL PRIMARY KEY,
    data TEXT
);

CREATE TABLE t2(
    id INT PRIMARY KEY REFERENCES t1(id) ON DELETE CASCADE,
    data2 TEXT
);

INSERT INTO t1 VALUES(1, 'one');
INSERT INTO t2 VALUES(1, 'first');

DELETE FROM t1;
SELECT * FROM t2; -- should have not rows - have one!

Используйте это все время В Postgres, но по какой-то причине не может попасть в MySQL.


Я медленно учитесь, есть стандарт ANSI, Postgreql путь, и есть MySQL. Каждый раз, я думаю, что я несколько ценил Разница, я не приблизился.

Путь MySQL

CREATE TABLE `t2` (
    `id` BIGINT(20) UNSIGNED NOT NULL,
    `data2` TEXT,
    PRIMARY KEY (`id`),
    CONSTRAINT `FK_t2_1` FOREIGN KEY (`id`) REFERENCES `t1` (`id`) ON DELETE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = latin1;

мне, код, который у меня есть, это стандарт ANSI, имеет смысл, имеет смысл, и это (насколько SQL идет) эстетически приятные, тогда как мой путь MySQL (Спасибо за помощь!) Напоминают мне о Visual Basic или что-то-то - это действительно безобразно, как грех, и ИМХО неправильно попросить разумных людей, чтобы высказать себя, чтобы написать такую ​​вещь.

Я прошу прощения, если прошу прощения, и справедливо заслуживаю какого-либо числа отрицательных рейтингов. Вы, ребята, которые пишут этот код с легкостью, оказывают мое большое уважение. Я просто ненавижу видеть такого рода бессмысленного наказания, нанесенного друзьями; -)

10
задан Community 23 May 2017 в 12:10
поделиться