我有两张桌子,"书籍"和"标签"。我有第三个" book_tags",它跟踪哪些标签被赋予哪些书籍。我意识到可能有其他设置可以更好地工作,但我们只是说必须这样。
books: isbn (PK), title, author, ...
tags: tag_name (PK)
book_tags: isbn (FK), tag (FK)
(isbn, tag) form PK
是否可以为book_tags表编写插入,以便任何新标签自动添加到标签表中?
如果相关,请使用postgres 9.6。
答案 0 :(得分:0)
我会研究postgresql的触发函数:https://www.postgresql.org/docs/9.6/static/functions-trigger.html
您可以创建一个触发器,无论何时在特定表上插入/删除/更新,您都可以运行一个可以自动执行任何操作的函数。
答案 1 :(得分:0)
是的,您可以在插入查询中使用触发器。检查一下 1.创建一个函数,只要再次执行book_tags新查询,就会向标记表添加新记录。 2.使用上面的
为book_tags上的每一行创建一个触发器
var dict = (Dictionary<string, object>) data[row]; // Set Name cell.nameText.text = dict["Name"].ToString(); // Set score cell.score.text = string.Format("{0:n0}", dict["HighScore"]); // Fb Profile IMG StartCoroutine(getFBPicture(cell.image, dict["FacebookId"].ToString()));
create table books(isbn int PRIMARY KEY, title varchar, author varchar);
create table tags(tag_name int PRIMARY KEY);
create table book_tags(isbn int references books(isbn), tag int references tags(tag_name));
create or replace function addtotags() returns trigger as $$ begin insert into tags(tag_name) values(new.tag_name); return new; end;$$ language plpgsql;
create trigger execadd_to_tags before insert on book_tags for each row
execute procedure addtotags();