我有2张桌子
collection
==========
collection_id (primary key)
collection_name
collection_type
collectable
===========
collectable_id(primary key)
collectable_name
collectable_type
collectable_collection
什么是SQL语句,以便collectable_collection
只能作为输入collection_id
?对不起,如果这太简单了。这是特定于列的更改:collectable_collection
还是表格:collectable
?
我正在使用MySQL数据库。
答案 0 :(得分:2)
如果在应用程序级别而不是SQL中实现它会更好。只需检查id
中插入的collectable_collection
是否为collection_id
,然后执行插入操作,如果collectable_collection
有多个collection_id
'秒。
修改强>
如果collectable_collection
中只有一个ID,那么您可以使用Foreign Key
。查看manual,了解有关如何使用它的更多信息
答案 1 :(得分:0)
使用coolection-id作为可收集表中的foreig键,只有当collection_id在收集表中出现时才会插入。
如果你想插入多个值,那么创建一个用于收集的日志表,这将用于在可收集表中获取集合值。
答案 2 :(得分:0)
您可以使用数据库管理工具,例如官方MySQL Workbench。在那里,您可以使用用户界面对数据库进行任何更改。
如果您希望使用SQL,则可以使用以下内容:
ALTER TABLE collectable
ADD CONSTRAINT FK_collectable_collection
FOREIGN KEY (collectable_collection)
REFERENCES collection (collection_id)
或者,您可以添加ON DELETE CASCADE
或ON DELETE SET NULL
以自动删除collectable
表中受影响的行,或者在{NULL
中设置对collection
的引用1}}表被删除。