Mysql 将列值默认为查询结果

Mysql 将列值默认为查询结果,mysql,Mysql,我正在努力实现以下目标 create table foo( bar int not null default (select default_bar from bars) ) 这当然会导致错误。有没有办法从查询的结果中导出默认列值而不使用触发器?说: 表达式默认值必须遵守以下规则。如果表达式包含不允许的构造,则会发生错误 子查询、参数、变量、存储函数和可加载 功能是不允许的 有关更多详细信息,请阅读文档页面。它可能会回答您的其他问题。为什么您不想使用触发器?因为我已经知道我可以使

我正在努力实现以下目标

create table foo(
    bar int not null default (select default_bar from bars)
)
这当然会导致错误。有没有办法从查询的结果中导出默认列值而不使用触发器?

说:

表达式默认值必须遵守以下规则。如果表达式包含不允许的构造,则会发生错误

  • 子查询、参数、变量、存储函数和可加载 功能是不允许的

有关更多详细信息,请阅读文档页面。它可能会回答您的其他问题。

为什么您不想使用触发器?因为我已经知道我可以使用触发器,只是看看是否可以不使用.Noway。默认值(以及DATETIME和TIMESTAMP列的当前_时间戳)中只能使用常量和确定性函数。