簡體   English   中英

創建表並將查詢作為默認值分配給字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM