mysql - 这个不寻常的 CREATE TABLE 语法是什么?

标签 mysql sql

我想创建数据库。 我有一个像这样的脚本文件 .sql :

CREATE TABLE [AlleleFreqBySsPop]
(
[subsnp_id] [int] NOT NULL ,
[pop_id] [int] NOT NULL ,
[allele_id] [int] NOT NULL ,
[source] [varchar](2) NOT NULL ,
[cnt] [real] NULL ,
[freq] [real] NULL ,
[last_updated_time] [datetime] NOT NULL
)
GO

好像和mysql或者postgresql不一样

这是什么类型的语言?我该如何使用它?

最佳答案

根据方括号和 GO 关键字判断,我会说这是 T-SQL (微软 SQL 服务器)。要在 MySQL 中使用它,您可能只需删除方括号并从那里解决不兼容问题(即类型或缺少转义)。

我刚刚在 SQL Fiddle 中对此进行了测试, 在这种情况下,只需删除方括号就足够了。但是,对于其他 DDL 语句,您可能必须替换类型(即 MySQL 不支持来自 T-SQL 的 datetime2),并且您可能会遇到其他问题 - 例如需要转义列名在一种方言中是保留关键字,但在另一种方言中不是,等等。通常的 SQL 数据库 do not use 100% standards compliant SQL .

关于mysql - 这个不寻常的 CREATE TABLE 语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298149/

相关文章:

sql - MySQL,阅读这条 EXPLAIN 语句

sql - 使用 Select * 将表名称附加到字段名称

sql - 将SQL查询映射到GORM查询

php - pgSQL : insert date format (leading zeros)?

sql - 将查询中的数据插入表时,查询是否针对插入的每条记录运行?

sql - 在不使用 LIMIT 的情况下从每个 ID 获取最后 5 条记录

php - Joomla:JDatabase 与 PHP 的直接 SQL 操作

mysql - 查询空字符串是否应该在主键列上匹配零?

mysql - 慢复合mysql更新查询

mysql - 复杂的 DELETE SQL 查询