Python cx_Oracle.DatabaseError:ORA-00907:缺少右括号

Python cx_Oracle.DatabaseError:ORA-00907:缺少右括号,python,database,oracle,oracle11g,pycharm,Python,Database,Oracle,Oracle11g,Pycharm,下面的代码行显示 cx_Oracle.DatabaseError: ORA-00907: missing right parenthesis cur.execute('''CREATE TABLE address(addressid int PRIMARY KEY AUTO_INCREMENT=1,addressline varchar(10),city varchar(10),zip int,state varchar(10)) ''') 在添加约束之前,代码运行时没有出现错误,但现在它显

下面的代码行显示

cx_Oracle.DatabaseError: ORA-00907: missing right parenthesis

cur.execute('''CREATE TABLE address(addressid int PRIMARY KEY AUTO_INCREMENT=1,addressline varchar(10),city varchar(10),zip int,state varchar(10)) ''')

在添加约束之前,代码运行时没有出现错误,但现在它显示了错误。

根据选项的顺序,首先指定列,然后指定约束

在Oracle 12中,使用:

CREATE TABLE address(addressid INT GENERATED AS IDENTITY PRIMARY KEY,
  addressline VARCHAR(10), city VARCHAR(10), zip int, state varchar(10));
在Oracle11及更早版本中,没有简单的
AUTO_INCREMENT
替代品,您必须使用序列和触发器:

CREATE TABLE address(addressid INT PRIMARY KEY, 
  addressline VARCHAR(10), city VARCHAR(10), zip int, state varchar(10));

CREATE SEQUENCE addressid_seq;

CREATE OR REPLACE TRIGGER addressid_tbi BEFORE INSERT ON address FOR EACH ROW 
BEGIN :new.addressid := addressid_seq.nextval; END;

另一个提示:对邮政编码使用VARCHAR2而不是INT,这样可以避免像Boston,MA 02101这样的前导零出现问题。谢谢,我做了更改,但错误仍然存在,cur.execute(“”“创建表地址(addressid INT始终作为标识生成,addressline varchar(10),city varchar(10),zip INT,state varchar(10))“”)错误显示-cx_Oracle.DatabaseError:ORA-02000:缺少(关键字您使用的是哪个Oracle版本?请编辑您的帖子并添加一个标签,f.i.oracle11g或oracle12c,因为答案取决于它。我明白了,我使用的是oracle11gAh。这就是问题所在。Oracle 11g中既没有
自动增量
也没有
生成为标识
。我相应地编辑了答案。