新建mysql数据库的时候,没有指定字符集和排序规则,导致插入中文的时候,插入失败。
由于表已经建好了,使用Dbeaver可以直接修改字符集和排序规则。
修改完成之后,点击右下角的save 按钮,再弹框中点击执行按钮。
按理说这里样子刷新之后,字符集就改过来了。但是今天新建的好几张表都没修改成功。
后来直接在页面执行下面sql语句。竟然就可以了
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
观察一下发现使用dbeaver修改,所执行的的SQL如下
ALTER TABLE mysql_schema.table_name DEFAULT CHARSET=utf8mb4;
关于批量修改
当要修改的表很多的时候,可以执行下面这个SQL。注意:将SCHEMA_NAME替换成自己的schema_name就行
SELECT
CONCAT(
'ALTER TABLE ',
TABLE_NAME,
' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'
)
FROM
information_schema.`TABLES`
WHERE
TABLE_SCHEMA = 'SCHEMA_NAME';
将查询结果复制出来,批量执行。然后刷新一下数据库。问题就解决了