1
所以我有以下模式。如何正確配置數據庫模式並插入
CREATE TABLE user_group (
id BIGINT PRIMARY KEY NOT NULL,
user_id BIGINT NOT NULL,
group_table_id BIGINT NOT NULL,
role VARCHAR(255),
CONSTRAINT user_group_user_id_fk FOREIGN KEY (user_id) REFERENCES user(id),
CONSTRAINT user_group_group_table_id_fk FOREIGN KEY (group_table_id) REFERENCES group_table(id)
);
CREATE TABLE group_table
(
id BIGINT PRIMARY KEY NOT NULL,
group_name VARCHAR(255),
group_picture_url VARCHAR(255),
tags VARCHAR(255),
description VARCHAR(255),
event_id BIGINT,
user_group_id BIGINT,
CONSTRAINT group_table_user_group_id_fk FOREIGN KEY (user_group_id) REFERENCES user_group(id)
);
CREATE TABLE user (
id BIGINT PRIMARY KEY NOT NULL,
display_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
picture_url VARCHAR(255),
user_group_id BIGINT,
event_response_id BIGINT,
CONSTRAINT user_user_group_id_fk FOREIGN KEY (user_group_id) REFERENCES user_group(id),
);
我怎樣才能使它成爲一個有效的陳述?從某種意義上說,我應該可以創建一個user_group表,group_table表或用戶表,而不需要其他表。
我有的另一個問題是。說這個陳述是有效的,並且存在表格。我將如何將數據插入user_group?
INSERT INTO user_group VALUES (1, 2, 3, 'role')
要求在插入值時,group_table和id分別爲2和3的用戶都已經存在。
插入'公告'(不帶觸發器)時,不可能出現提及的錯誤。請發佈您的完整架構。 –
這個錯誤似乎更符合數據庫的要求,我需要先創建一個id爲12的group_table,然後才能插入公告。我如何做到這一點,以便在插入公告時不需要存在group_table id? – dszopa
仔細查看錯誤消息:違反了「GROUP_TABLE_EVENT_ID_FK」。這意味着'group_table'操作期間發生錯誤,而不是'公告'一次。再說一遍:向我們展示更多(架構和腳本)。 –