我正在努力SQLite
。我想创建一个user_role
具有两个列role_id
和的表role_name
。还有另一个表,即default
包含role_name
和default_val
。
我想role_id
在创建表时设置Default的值,user_role
并且必须从表中检索Default的值default
。
我是SQLite的新手,必须考虑进行此类递归查询的方法。请帮忙。
该文档说:
显式的DEFAULT子句可以指定默认值为NULL,字符串常量,blob常量,带符号的数字或括号中包含的任何常量表达式。
您将需要使用子查询,这是不允许的。
但是,如果未指定ID,则可以使用触发器来设置ID:
CREATE TRIGGER user_role_id_default
AFTER INSERT ON user_role
FOR EACH ROW
WHEN NEW.role_id IS NULL
BEGIN
UPDATE user_role
SET role_id = (SELECT default_val
FROM "default"
WHERE role_name = NEW.role_name)
WHERE rowid = NEW.rowid;
END;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句