[英]Create Table and assign a query as default value to a field
CREATE TABLE `williamhill` (
`id` VARCHAR(50) NULL,
`nick` VARCHAR(50) NULL,
`password` VARCHAR(50) NULL DEFAULT (SELECT default_password FROM person p WHERE p.id = id),
`Colonna 4` VARCHAR(50) NULL
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
我如何在MYSQL中做類似的事情? 如果嘗試在創建新行時未指定任何值,則嘗試從另一個表分配默認值。
是否有可能那樣或我應該使用觸發器/程序?
MySQL非常明確地指出這是無法完成的。 首先,default的語法稱為default value 。 期望值。
以下是文檔描述的方式:
數據類型規范中的
DEFAULT
value子句指示列的默認值。 除一個例外,默認值必須為常量; 它不能是函數或表達式。
(一個例外是CURRENT_TIME
,大多數人甚至可能沒有意識到這是一個函數。)
許多數據庫的確允許此處進行函數調用。 據我所知,沒有一個允許查詢表達式。 但是,通常可以在用戶定義的函數中進行模擬。
解決方法是使用觸發器。 在另一個表中查找值是觸發器的一種常見用法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.