0

是否可以在一个查询中为具有来自不同表的值的列设置默认值?

我尝试了

ALTER table1 ALTER col1 SET DEFAULT (SELECT col2 FROM table2 WHERE id=1)
ALTER table1 ALTER col1 SET DEFAULT @val:=SELECT col2 FROM table2 WHERE id=1

SELECT @var:=col2 FROM table2 WHERE id=1;
ALTER TABLE table1 ALTER col1 SET DEFAULT @var

但他们都抛出错误。

谁能指出我正确的方向?谢谢

4

1 回答 1

0

数据类型规范中的DEFAULT value 子句指示列的默认值。

除了一个例外,默认值必须是一个常量它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为NOW() 或 CURRENT_DATE 等函数的值。

例外情况是您可以将CURRENT_TIMESTAMP 指定为 TIMESTAMP 列的默认值

参考 http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

于 2013-09-22T14:37:46.547 回答