2010-09-11 88 views
1

是否有可能讓mysql根據插入到同一個表中的另一列中的內容在列中插入值。例如:如果我要在一列中插入紐約,另一列可以自動成爲紐約州。是的,我必須在某處存儲此信息。但是有可能這樣做嗎?Mysql自動插入值

回答

0

當然。你可以使用MySQL觸發器。

編輯:但是,對於同一張表而言,不幸的是,觸發器不允許重新打開它們關聯的表格或當時該線程可能打開的任何表格。

+0

我想通過困難的方式:)任何其他方式來做到這一點? – Norman 2010-09-11 11:31:14

2

如果我正確地理解了所有內容,則試圖在列中插入一個值(紐約),並在第二列中插入另一個值,該值取決於第一個值(本例中爲NY)。

讓我們用你的城邦狀態的例子,假設你有一個表cities與所有的城邦聯合體。

INSERT INTO table SET 
city = 'New York', 
state = (SELECT state FROM cities WHERE city = 'New York'); 

你必須使用這種類型的子查詢,而不是使用一個觸發器,它會自動補state列,如觸發MySQL不能工作在已經打開的表,因爲@Michal德羅茲德指出。 (但是,他們至少可以在SQL Server和Oracle中)。