我想从 MySQL 迁移到 PostgreSQL。我对创建表的查询是这样的。
CREATE TABLE IF NOT EXISTS conftype
(
CType char(1) NOT NULL,
RegEx varchar(300) default NULL,
ErrStr varchar(300) default NULL,
Min integer default NULL,
Max integer default NULL,
PRIMARY KEY (CType)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin;
Run Code Online (Sandbox Code Playgroud)
此查询的转换形式是什么。我对DEFAULT CHARSET=latin1 COLLATE=latin1_bin部分感到困惑 。我如何转换这部分?
那意味着该表仅使用 latin-1 (iso-8859-1) 字符集和 latin-1 二进制排序顺序。在 PostgreSQL 中,字符集是数据库范围的,没有在表级别设置它的选项。
您可以使用以下命令创建一个最兼容的数据库:
CREATE DATABASE databasenamegoeshere WITH ENCODING 'LATIN1' LC_COLLATE='C'
LC_CTYPE='C' TEMPLATE=template0;
Run Code Online (Sandbox Code Playgroud)
但是,我个人认为 MySQL->PostgreSQL 端口也值得切换到 UTF-8/Unicode。
| 归档时间: |
|
| 查看次数: |
3134 次 |
| 最近记录: |