これはひどい設計であり、おそらく不可能です。
なぜ使用しないのVIEW
ですか?
CREATE VIEW table1_ownerfield AS SELECT ownerfield_1 FROM table1;
CREATE VIEW table2_ownerfield AS SELECT ownerfield_2 FROM table2;
次に、それらをテーブルとして使用します。
SELECT * FROM table1_ownerfield;
SELECT * FROM table2_ownerfield;
質問の 2 番目の部分については、 using triggersをご覧ください。
編集:
必要なビューの種類は次のようになります。
CREATE VIEW my_posts AS
SELECT * FROM posts WHERE post_owner = CURRENT_USER()
WITH CHECK OPTION;
CREATE VIEW my_categories AS
SELECT * FROM categories WHERE category_owner = CURRENT_USER()
WITH CHECK OPTION;
あなたはおそらく次のようなことをしたいと思うでしょう:
テーブルを作成します。
CREATE TABLE user_connections (
user_connection_id INT AUTO_INCREMENT PRIMARY KEY,
mysql_connection_id INT,
user_id INT
);
次に、ユーザーがログインするときに、関数を使用してこのテーブルに mysql 接続 ID を入力しますCONNECTION_ID()
。
次に、次のようなビューを作成できます。
CREATE VIEW my_posts AS
SELECT * FROM posts p JOIN user_connections uc
WHERE uc.mysql_connection_id = CONNECTION_ID()
AND p.post_user_id = uc.user_id
WITH CHECK OPTION;
CREATE VIEW my_categories AS
SELECT * FROM categories c JOIN user_connections uc
WHERE uc.mysql_connection_id = CONNECTION_ID()
AND c.category_user_id = uc.user_id
WITH CHECK OPTION;