我希望编写由PostgreSQL AND MySQL使用的SQL文件,但user列需要PostgreSQL"user"MySQLuser

PostgreSQL:

CREATE TABLE mail_user (
   "user" char(50) NOT NULL,
   domain char(50) NOT NULL,
   password char(50) NOT NULL
);

MySQL:

CREATE TABLE mail_user (
   user char(50) NOT NULL,
   domain char(50) NOT NULL,
   password char(50) NOT NULL
);

推荐答案

在设计表时,通常最好避免对数据库、列和表名使用保留字.在创建数据定义语言(DDL)语句时尤其如此,该语句旨在可在服务器的品牌和版本之间移植.这是因为不同的服务器允许保留字的位置不同,而且分隔它们的方式也不同.在PostgreSQL中,您可以编写"user".在SQL Server中编写[user],在MySQL中编写

`user`

只要避免那些保留的字眼,你就避免了所有的误会.

user是保留字.如果这是我的项目,我会称之为《username专栏》.

Mysql相关问答推荐

是否有一种方法可以在mysql中设置一列,使其自动成为该行的行号的值?

在联合查询中使用GROUP BY和ORDER BY

在MySQL和JavaFX中保存和检索图像文件

DJANGO 使用原始 MYSQL 查询计算记录数并在 html 模板中使用结果

使用Workbench时如何添加mysqldump配置标志

我可以在姓名和姓名日期之间进行搜索吗?

基于多个 where 子句在规范化表中查找公共 ID(值)

使用 autocommit = 0 和 InnoDB 表的 LOCK TABLES 检测死锁

MySQL,递归 CTE.它如何以这种句法形式工作?

需要按总金额检索前 3 个供应商,每个类别 - 子类别

在 Spring Data jpa 中的 @Query 中无法识别本机查询

在表中找到最大值,然后分别显示SQL组和每个SQL组中的最大值计数

即使使用索引,MySQL 计数和按查询分组也很慢

提取 MySQL 5.7 连续值的差异

MySql中的可见索引和不可见索引是什么

如何在任何连续范围内获得最大值

进行 MySQL COUNT 查询

MAMP mysql 服务器无法启动.没有mysql进程正在运行

问号在 MySQL 中WHERE column = ?的意义是什么?

Sequelize Query 查找日期范围内的所有记录