cweijan / vscode-database-client

Database Client For Visual Studio Code
https://database-client.com
MIT License
2.49k stars 285 forks source link

[BUG] 修改 DATETIME 类型的列会使用错误的SQL语句 #1234

Closed sakamoto-king closed 2 months ago

sakamoto-king commented 3 months ago

在尝试修改 DATETIME 类型的列时,生成的 SQL 语句包含不必要的 CHARACTER SET 和 COLLATE 属性,导致语法错误。以下是相关的 SQL 语句和错误信息:

image

ALTER TABLE `fc_sku_price` 
    CHANGE `add_time` `add_time` datetime CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建时间' ;

但是这样会导致报错,问了AI是因为CHANGE 子句包含了不必要的 CHARACTER SET 和 COLLATE,这些属性不适用于 DATETIME 类型的列。正确的语法应该去掉这些属性。

错误信息:

2024-08-04 10:27:15 [ERROR] Execute fail : ALTER TABLE `fc_sku_price` 
    CHANGE `add_time` `add_time` datetime CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建时间' ;
2024-08-04 10:27:15 [ERROR] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建时间'' at line 2

以下是修正后的 SQL 语句:

ALTER TABLE `fc_sku_price`
CHANGE `add_time` `add_time` DATETIME NOT NULL COMMENT '创建时间';

改完就能执行了

cweijan commented 2 months ago

已在7.6.1修复.