[英]Why won't MySQL let me remove attribute “on update CURRENT_TIMESTAMP”?
[英]Why won't CURRENT_TIMESTAMP work on mysqlworkbench?
我想在帖子創建和更新時檢索當前時間。 在我關注的教程中,作者使用了不帶()
CURRENT_TIMESTAMP
,但這對我沒有用,它給了我std::exception
。
在下面,我正在做CURRENT_TIMESTAMP()
但這不起作用。 我也在線閱讀並嘗試了DEFAULT CURRENT_TIMESTAMP
但這還是行不通的。
我在做什么錯,我該如何解決?
public function up()
{
Schema::create('blogs', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->text('body');
$table->timestamps();
});
}
問題是您試圖從GUI輸入中插入CURRENT_TIMESTAMP
,這是錯誤的,因為它試圖將其解析為最新的字符串。
我建議您改為使用SQL查詢插入。
INSERT INTO blogs
(id, name, body, created_at, updated_at)
VALUES
(null, 'this is name', 'this is body', CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP())
在我關注的教程中,作者使用的CURRENT_TIMESTAMP不帶()
根據您的結果以及有關該視頻片段中發生的事情的一些有根據的猜測,這似乎是Sequel Pro(本教程演示者正在使用的數據庫客戶端)的功能,而不是MySQL數據庫本身。 而不是Sequel Pro,您使用的是MySQL Workbench,這是一款完全不同的軟件。
一個非常相似的名稱的MySQL功能確實是在其后帶有()
的函數調用,所以還有其他事情。
但這對我沒有用,它給了我std :: exception。
盡管沒有真正的理由期望Workbench在日期/時間字段中接受非日期(甚至是任意表達式),但這種特殊症狀對我來說似乎是一個錯誤。
如果沒有引號和字段名定界符之類的好東西,就不可能毫不含糊地接受這樣的輸入,這是您自己編寫完整的INSERT
語句而繞過Workbench小部件所獲得的。 對於Zendy使用MySQL CURRENT_TIMESTAMP()
函數的良好解決方法,您將需要它。
在下面,我正在做CURRENT_TIMESTAMP(),但這不起作用。 我也在線閱讀並嘗試了DEFAULT CURRENT_TIMESTAMP,但這還是行不通的。
這些可能是Workbench界面的限制。 很難決定是要給它逐字字符串存儲在表中,還是要給出帶有函數調用的表達式。 而且,公平地說,它並沒有足夠的信息來推斷100%的確定性。
這就是為什么通常編寫更好的SQL語句的原因。 這是明確指出您要執行的操作的唯一方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.