2015-08-24 17 views
0

如何使用觸發器更新表中的單個行或列。我正在使用這個查詢。 SET NEW.Updated_As = CURRENT_TIMESTAMP如何使用觸發器更新表格中的單個行或列

但它會更新該行的所有值。好心幫

+0

你想更新哪一行?你的問題很不明確。嘗試添加示例數據,所需結果以及您當前擁有的代碼。 –

回答

1

只是一個通用的,簡單的更新查詢:

UPDATE表名SET字段1 =新值1,字段2 =新-2 [WHERE子句]

請參考here瞭解更多詳情關於更新

+0

如果你想更新整個列,那麼你可能不需要where子句。如果要編輯列的某一行/某些特定行,則需要使用WHERE子句的附加條件。 –

0

我不確定你需要什麼,但如果你只是想用current_timestamp更新時間列,你不需要觸發器!您可以只用「上更新CURRENT_TIMESTAMP」爲您所需字段在表definition.like此設置做到這一點:

create table test(
. 
Updated_As timestamp default current_timestamp on update current_timestamp, 
. 
. 
); 
0

我希望下面的語法會幫助你,

DELIMITER $$ 

USE `database_name`$$ 

DROP TRIGGER /*!50032 IF EXISTS */ `trigger_name`$$ 

CREATE 
/*!50017 DEFINER = 'new'@'localhost' */ 
TRIGGER `trigger_name` AFTER UPDATE ON `updated_table_name` 
FOR EACH ROW BEGIN 
INSERT INTO new_table_name 
SET ACTION='update', 

changedon=NOW(); 
END; 
$$ 

DELIMITER ; 

在上面代碼「Action」和「changedon」是「new_table_name」的列。它的寫法是幫助用戶更新「updated_table_name」中所做的更改。

相關問題