|
|
| Line 284: |
Line 284: |
| $ mysqldump -h 127.0.0.1 -u USER -p --skip-lock-tables DATABASE_NAME TABLE_NAME > TABLE_NAME.sql | | $ mysqldump -h 127.0.0.1 -u USER -p --skip-lock-tables DATABASE_NAME TABLE_NAME > TABLE_NAME.sql |
| </pre> | | </pre> |
|
| |
| == 錯誤 1170: 在鍵規格中使用 BLOB/TEXT 欄位且沒有鍵長 ==
| |
| 情況
| |
| * 嘗試建立新表格時的 SQL 語法
| |
|
| |
| <pre>
| |
| DROP TABLE IF EXISTS `my_table`;
| |
| /*!40101 SET @saved_cs_client = @@character_set_client */;
| |
| /*!40101 SET character_set_client = utf8 */;
| |
| CREATE TABLE `my_table` (
| |
| `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
| |
| `title` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
| |
| `url` text COLLATE utf8mb4_unicode_ci NOT NULL,
| |
| `status` tinyint(2) unsigned NOT NULL DEFAULT 1,
| |
| PRIMARY KEY (`job_id`),
| |
| UNIQUE KEY `url` (`url`) USING HASH
| |
| ) ENGINE=InnoDB AUTO_INCREMENT=3573 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
| |
| /*!40101 SET character_set_client = @saved_cs_client */;
| |
| </pre>
| |
|
| |
| 解決方案:在鍵規格中使用 BLOB/TEXT 欄位並指定鍵長,例如 {{kbd | key=`url`(500)}}
| |
| <pre>
| |
| DROP TABLE IF EXISTS `my_table`;
| |
| /*!40101 SET @saved_cs_client = @@character_set_client */;
| |
| /*!40101 SET character_set_client = utf8 */;
| |
| CREATE TABLE `my_table` (
| |
| `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
| |
| `title` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
| |
| `url` text COLLATE utf8mb4_unicode_ci NOT NULL,
| |
| `status` tinyint(2) unsigned NOT NULL DEFAULT 1,
| |
| PRIMARY KEY (`id`),
| |
| UNIQUE KEY `url` (`url`(500))
| |
| ) ENGINE=InnoDB AUTO_INCREMENT=3573 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
| |
| /*!40101 SET character_set_client = @saved_cs_client */;
| |
| </pre>
| |
|
| |
|
| |
|
| |
|
| == 錯誤 1205: 鎖定等待超時,嘗試重新啟動事務 == | | == 錯誤 1205: 鎖定等待超時,嘗試重新啟動事務 == |