【问题标题】:How do I set CHARACTER SET and COLLATE SET on tables on Workbench ERP?如何在 Workbench ERP 的表上设置 CHARACTER SET 和 COLLATE SET?
【发布时间】:2021-06-14 19:50:57
【问题描述】:

我正在使用学校服务器,所以我们不能添加新数据库,我们只使用现有的数据库,但我们可以在上面添加表。

我想使用丹麦语字符集和丹麦语排序规则,以便在排序时根据丹麦字母表检索到的名称。

如何在 Workbench ERP 中执行此操作?

关于我使用的数据库服务器: 服务器类型:MariaDB 服务器版本:10.5.8-MariaDB - MariaDB 服务器

我确实使用这个改变了表格:

ALTER TABLE Users CONVERT TO CHARACTER SET utf8 COLLATE utf8_danish_ci;

这行得通。

但是如何在 Workbench ERP 上进行设置,这样我就不必每次在进行正向工程后都更新所有表?

我尝试更改每张桌子:

但即使我保存,排序规则也会返回到 utf8_bin。

以及此视频中的解释: https://www.youtube.com/watch?v=DflA8G5OCtQ&ab_channel=TechBrothersIT

在我的例子中没有 default_collat​​ion 变量。

我也在 PHP 上试过这个:

$this->dbh = new PDO("mysql:host=$this->host;dbname=$this->dbname", $this->username, $this->password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8' SET COLLATION 'utf8_danish_ci'"));

然后我得到错误:

SQLSTATE[42000] [1064] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET COLLATION 'utf8_danish_ci' at line 1

如何在 Workbench ERP 或 PDO 上设置字符集和排序规则,以便在进行正向工程后不必每次都更新所有表?

【问题讨论】:

  • 我有点困惑。我不认为“MySQL Workbench”可以与 mariaDB 数据库一起使用。也许这是你的问题!
  • @RiggsFolly,任何 MySQL 客户端都应该能够连接到 MariaDB 服务器。它们具有兼容的协议,至少在当前版本中是这样。
  • 嗨@BillKarwin 我收到一条警告,指出在尝试将 MySQL Workbench 连接到 mariaDB 引擎时某些功能不起作用。只是一个警告,但是,我是不是太认真了?
  • @RiggsFolly MySQL和MariaDB确实都有一些其他没有的功能,并且自2010年MariaDB分叉以来,差异逐渐增加。一些SQL查询的行为将不一样,一些内置函数是不同的,等等。但协议是相同的。如果您将自己限制为基本查询,那应该没问题。但显然 MySQL Workbench 至少可以连接到 MariaDB。
  • 感谢@BillKarwin strangley,今天,我安装了 DBeaver,这样我就可以从一个工具中同时使用这两个工具,可能不需要费心 :)

标签: mariadb mysql-workbench collation


【解决方案1】:

参考https://mariadb.com/kb/en/set-names/

语法应该是:

SET NAMES 'utf8' COLLATE 'utf8_danish_ci'

【讨论】:

    猜你喜欢
    • 2022-06-22
    • 1970-01-01
    • 2010-12-06
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2011-08-19
    相关资源
    最近更新 更多