簡體   English   中英

無法將 MySQL 表從 MyISAM 轉換為 InnoDB

[英]Cannot convert MySQL Table from MyISAM to InnoDB

我正在嘗試將 MySQL 表從 MyISAM 轉換為 InnoDB。

我使用以下命令:

ALTER TABLE `wp_wpr_rucss_used_css` ENGINE=InnoDB

但得到以下錯誤:

#1067 - Invalid default value for 'modified'

為什么? 如何解決?

更新

我運行以下命令

SHOW CREATE TABLE `wp_wpr_rucss_used_css` 

得到以下結果:

CREATE TABLE `wp_wpr_rucss_used_css` (
 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `url` varchar(2000) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
 `css` longtext COLLATE utf8mb4_unicode_520_ci,
 `unprocessedcss` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
 `retries` tinyint(1) NOT NULL DEFAULT '1',
 `is_mobile` tinyint(1) NOT NULL DEFAULT '0',
 `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
 `last_accessed` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
 PRIMARY KEY (`id`),
 KEY `url` (`url`(150),`is_mobile`),
 KEY `modified` (`modified`),
 KEY `last_accessed` (`last_accessed`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci

似乎你有0000-00-00 00:00:00作為默認值所以一般來說,問題是因為 sql_modes。 請通過命令檢查您當前的sql_modes

show variables like 'sql_mode';

如果有,請刪除 sql_mode "NO_ZERO_IN_DATE,NO_ZERO_DATE" 然后運行你的alter 命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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