繁体   English   中英

Sqlite3触发器:添加一列

[英]Sqlite3 trigger: add a column

我有一个想法在sqlite3中实现。 这可以在触发器alter table中使用new.something的名称添加列吗?

简单的例子:

CREATE TRIGGER add_something AFTER INSERT ON simple_table 
BEGIN:
    ALTER TABLE second_table add column NEW.simple_name int;
END;

当我尝试这个时,我有语法错误。 在postgres我只是执行EXECUTE,但sqlite是非常简单和特定的简单数据库所以我不知道如何做到这一点...我尝试转换为文本并与''连接。

您不能在触发器中使用ALTER TABLE语句。

要执行动态SQL语句,您必须注册自己的函数,它可以执行任何操作:

CREATE TRIGGER add_something
AFTER INSERT ON simple_table 
BEGIN
    SELECT my_function(NEW.simple_name);
END;

不,这是不可能的。 您只能在SQLite触发器中使用INSERT,UPDATE,DELETE和SELECT语句(参见CREATE TRIGGER上的SQLite文档 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM