什么是这种不寻常的CREATE TABLE语法?

Jon*_*ona 0 mysql sql

我想创建DB.我有一个脚本文件.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
Run Code Online (Sandbox Code Playgroud)

它似乎与mysql或postgresql不同.

这是什么类型的语言?我怎么用呢?

han*_*ngy 6

用方括号和GO关键字来判断,我会说这是T-SQL(MS SQL Server).要在MySQL中使用它,您可以从那里删除方括号并解决不兼容性(即类型或丢失转义).

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