使用另一个表中的值更改默认值

时间:2013-09-22 13:41:55

标签: mysql

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

我尝试了

的变体
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

但他们都会犯错误。

有人能指出我正确的方向吗?日Thnx

1 个答案:

答案 0 :(得分:0)

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

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

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

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