【问题标题】:1064 syntax error in mysql when creating a table [closed]创建表时mysql出现1064语法错误[关闭]
【发布时间】:2012-10-22 18:04:18
【问题描述】:
drop table member cascade constraints;
create table member (
    mid varchar2(10) not null,
    email varchar2(40) not null,
    fname varchar2(20) not null,
    lname varchar2(20) not null,
    street varchar2(50) not null,
    city varchar2(30) not null,
    state varchar2(20) not null,
    zip number(5) not null,
    phone varchar2(12),
    password varchar2(20),
    primary key (mid)
);

【问题讨论】:

  • 我看到了 DDL,但毫无疑问... 请花一些时间将您的问题作为一个实际问题(不仅仅是代码转储)。它可以帮助我们回答您的问题,您可能会在此过程中自己找到答案。谢谢,欢迎来到 Stack Overflow!

标签: mysql syntax-error create-table


【解决方案1】:

嗯,从 Oracle 剪切和粘贴并不总是很好;

VARCHAR2 在 MySQL 中不作为数据类型存在。
NUMBER 也不存在。
CASCADE CONSTRAINTS 似乎也不能作为 DROP TABLE 的修饰符。

作为CASCADE CONSTRAINTS 的替代品,您可以使用DROP TABLE IF EXISTS a,b,c 使用一条语句删除多个表。不完全一样,但已经很不错了。

你想要的可能是这样的;

drop table if exists member;

create table member (
  mid varchar(10) not null,
  email varchar(40) not null,
  fname varchar(20) not null,
  lname varchar(20) not null,
  street varchar(50) not null,
  city varchar(30) not null,
  state varchar(20) not null,
  zip numeric(5) not null,
  phone varchar(12),
  password varchar(20),
  primary key (mid)
);

SQLfiddle here.

【讨论】:

  • 创建表项(ino numeric(5),title varchar(128) not null,category varchar(120) not null,description varchar(2000),openDateTime date,sellerId varchar(10) not null ,startingBid numeric(7,2) not null,bidIncrement number(7,2) not null,closeDateTime Date,winnerId varchar(10),主键(ino),外键(category)引用类别,外键(sellerId)引用成员,外键(winnerId)引用成员);
  • 嗯,从 Oracle 剪切和粘贴并不总是很好---很好:)
  • @WailDrouiche 然后使用DROP TABLE IF EXISTS item,member 一次性删除两个表。
  • 我尝试正确,ino numeric(5) 和主键(ino) 之后,但出现语法错误
  • @WailDrouiche 我不确定我是否理解您的意思,ino 不是您要询问的表格中的一个字段,您是否遇到了比这个更多的表格的问题?如果是关于评论中的表格,bidIncrement 仍然是NUMBER,而不是NUMERIC
猜你喜欢
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 2013-11-13
相关资源
最近更新 更多