他の方の質問で posts
テーブルと comments
テーブルの削除を逆にしたらいけないという内容がありましたが、 comments
テーブルは posts
テーブルを必要としていて、 posts
テーブルは comments
テーブルを必要としていないという理屈はわかるのですが、上から処理されるので、問題ないのでは?と考えてしまいました。(実際に実行するとエラーになりますが。)
どういう流れで処理を行われているのかご教示いただけますでしょうか。
私の考え
(1) comments
テーブル、 posts
テーブルが存在しているとエラーになる為すでに存在している場合削除
DROP TABLE IF EXISTS posts;
DROP TABLE IF EXISTS comments;
(2) posts
テーブルとそれに対応する各カラムの作成及び主キーの設定。
comments
テーブルとそれに対応する各カラカラムの作成及び主キーの設定。また、外部キーの設定。
CREATE TABLE posts (
id INT NOT NULL AUTO_INCREMENT,
message VARCHAR(140),
PRIMARY KEY (id)
);
CREATE TABLE comments (
id INT NOT NULL AUTO_INCREMENT,
post_id INT,
comment VARCHAR(140),
PRIMARY KEY (id),
FOREIGN KEY (post_id) REFERENCES posts(id)
);
(3) 値の挿入
INSERT INTO posts (message) VALUES
('post-1'),
('post-2'),
('post-3');
INSERT INTO comments (post_id, comment) VALUES
(1, 'comment-1-1'),
(1, 'comment-1-2'),
(3, 'comment-3-1');
(4) posts
と comments
テーブルのすべてを抽出(抽出した際にエラー確認)
SELECT * FROM posts;
SELECT * FROM comments;
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?