Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 在Postgres中使用带空格的列名时出现语法错误_Postgresql_Database Schema_Ddl - Fatal编程技术网

Postgresql 在Postgres中使用带空格的列名时出现语法错误

Postgresql 在Postgres中使用带空格的列名时出现语法错误,postgresql,database-schema,ddl,Postgresql,Database Schema,Ddl,我试图在模式下创建表。然而,我得到以下错误 [代码:0,SQL状态:42601]错误:在“VARCHAR”处或附近出现语法错误 位置:120[脚本位置:120-123] 我无法调试语法错误的位置。您可以在下面找到postgres查询 CREATE SCHEMA IF NOT EXISTS ebi_mut_db; CREATE TABLE IF NOT EXISTS ebi_mut_db.version_info ( version INT, d

我试图在模式下创建表。然而,我得到以下错误

[代码:0,SQL状态:42601]错误:在“VARCHAR”处或附近出现语法错误 位置:120[脚本位置:120-123]

我无法调试语法错误的位置。您可以在下面找到postgres查询

CREATE SCHEMA IF NOT EXISTS ebi_mut_db;

        CREATE TABLE IF NOT EXISTS ebi_mut_db.version_info (
        version INT, 
        download_date DATE, 
        download_url TEXT, 
        responsible TEXT);

        CREATE TABLE IF NOT EXISTS ebi_mut_db.mutations_affecting_interactions (
        Feature AC NOT NULL VARCHAR (20), 
        Feature short label VARCHAR (50), 
        Feature range(s) VARCHAR (50), 
        Original sequence CHAR (50), 
        Resulting sequence CHAR (50), 
        Feature type VARCHAR (100), 
        Feature annotation VARCHAR (255), 
        Affected protein AC VARCHAR (100), 
        Affected protein symbol VARCHAR (100), 
        Affected protein full name VARCHAR (100), 
        Affected protein organism VARCHAR (100), 
        Interaction participants VARCHAR (255), 
        PubMedID VARCHAR (100), 
        Figure legend VARCHAR (50), 
        Interaction AC VARCHAR (50),
        PRIMARY KEY (Feature AC);


谢谢

列名中不能有空格。如果你真的想让你的生活更艰难,那么你必须引用它们,例如
“Feature AC”
,而不是
Feature AC

notnull
属性位于数据类型之后

"Feature AC" VARCHAR (20) NOT NULL, 
在CREATE TABLE语句的末尾,您还缺少一个结束语

请忘记存在
char
类型。它绝对没有任何优势,但有一些令人不快的惊喜

因此,整个声明应该是:

CREATE TABLE IF NOT EXISTS ebi_mut_db.mutations_affecting_interactions 
(
  "Feature AC" VARCHAR (20) NOT NULL, 
  "Feature short label" VARCHAR (50), 
  "Feature range(s)" VARCHAR (50), 
  "Original sequence" VARCHAR (50), 
  "Resulting sequence" VARCHAR (50), 
  "Feature type" VARCHAR (100), 
  "Feature annotation" VARCHAR (255), 
  "Affected protein AC" VARCHAR (100), 
  "Affected protein symbol" VARCHAR (100), 
  "Affected protein full name" VARCHAR (100), 
  "Affected protein organism" VARCHAR (100), 
  "Interaction participants" VARCHAR (255), 
  "PubMedID" VARCHAR (100), 
  "Figure legend" VARCHAR (50), 
  "Interaction AC" VARCHAR (50),
  PRIMARY KEY (Feature AC)
);

但是你应该,真的,真的重新考虑你的列名。我强烈建议您使用以下内容:

CREATE TABLE IF NOT EXISTS ebi_mut_db.mutations_affecting_interactions 
(
  feature_ac varchar (20) not null, 
  feature_short_label varchar (50), 
  feature_range varchar (50), 
  original_sequence varchar (50), 
  resulting_sequence varchar (50), 
  feature_type varchar (100), 
  feature_annotation varchar (255), 
  affected_protein_ac varchar (100), 
  affected_protein_symbol varchar (100), 
  affected_protein_full_name varchar (100), 
  affected_protein_organism varchar (100), 
  interaction participants varchar (255), 
  pub_med_id varchar (100), 
  figure_legend varchar (50), 
  interaction_ac varchar (50),
  primary key (feature ac)
);

列名中不能有空格。如果你真的想让你的生活更艰难,那么你必须引用它们,例如
“Feature AC”
,而不是
Feature AC

notnull
属性位于数据类型之后

"Feature AC" VARCHAR (20) NOT NULL, 
在CREATE TABLE语句的末尾,您还缺少一个结束语

请忘记存在
char
类型。它绝对没有任何优势,但有一些令人不快的惊喜

因此,整个声明应该是:

CREATE TABLE IF NOT EXISTS ebi_mut_db.mutations_affecting_interactions 
(
  "Feature AC" VARCHAR (20) NOT NULL, 
  "Feature short label" VARCHAR (50), 
  "Feature range(s)" VARCHAR (50), 
  "Original sequence" VARCHAR (50), 
  "Resulting sequence" VARCHAR (50), 
  "Feature type" VARCHAR (100), 
  "Feature annotation" VARCHAR (255), 
  "Affected protein AC" VARCHAR (100), 
  "Affected protein symbol" VARCHAR (100), 
  "Affected protein full name" VARCHAR (100), 
  "Affected protein organism" VARCHAR (100), 
  "Interaction participants" VARCHAR (255), 
  "PubMedID" VARCHAR (100), 
  "Figure legend" VARCHAR (50), 
  "Interaction AC" VARCHAR (50),
  PRIMARY KEY (Feature AC)
);

但是你应该,真的,真的重新考虑你的列名。我强烈建议您使用以下内容:

CREATE TABLE IF NOT EXISTS ebi_mut_db.mutations_affecting_interactions 
(
  feature_ac varchar (20) not null, 
  feature_short_label varchar (50), 
  feature_range varchar (50), 
  original_sequence varchar (50), 
  resulting_sequence varchar (50), 
  feature_type varchar (100), 
  feature_annotation varchar (255), 
  affected_protein_ac varchar (100), 
  affected_protein_symbol varchar (100), 
  affected_protein_full_name varchar (100), 
  affected_protein_organism varchar (100), 
  interaction participants varchar (255), 
  pub_med_id varchar (100), 
  figure_legend varchar (50), 
  interaction_ac varchar (50),
  primary key (feature ac)
);

与你的问题无关,但是:与你的问题无关,但是: