SQL:无法创建表

Posted

技术标签:

【中文标题】SQL:无法创建表【英文标题】:SQL : can not create a table 【发布时间】:2018-04-28 10:17:22 【问题描述】:

我执行以下操作:

use oracle developer

create table loan 
(
        barcode                 number (20) not null ,
        borrowernumber          number (7) ,
        loancurrentdate         date ,
        loanreturndate          date ,
        loanreserveorder        number (20) ,
        paymentdate             date ,
        borrower_borrowernumber number not null
);

alter table loan add constraint loan_pk primary key (barcode) ;

无法创建表,然后更改它...

create table loan 
(
    loanno                  INT not null,
    loandate                date not null,
    loanreturndate          date null,
    loanreserve             number (20) null,
    paymentdate             date null,
);

alter table loan add constraint loan_pk primary key (loanno) ;

我收到以下错误。为什么我会得到这个?

错误报告 SQL 错误:ORA-00942:表或视图不存在 00942. 00000 - “表或视图不存在”

它还显示“无效标识符”

错误报告:

SQL 错误:ORA-00904: : 标识符无效 00904. 00000 - "%s: 无效标识符"

或者我应该删除付款日期吗?


删除错误的逗号后,表就创建好了。

【问题讨论】:

“不起作用”没有帮助。你有错误吗?如果是这样,你的错误是什么。另外,标记您正在使用的数据库。 我不太了解行动时间表。还有什么时候会出现这个错误? paymentdate date null, 后面的逗号有误,应该删除它 use oracle developer 那是一个以空格为分隔符的Table_Name吗? 尝试在表声明后添加语句GO;。也可以试试/ 【参考方案1】:

您发布的两个示例都是正确的(除了第二个 CREATE TABLE 语句末尾的多余逗号)。这是 SQL*Plus 示例,但是 - 正如 SQL Developer 模拟它很好,我相信它们也应该在那里工作得很好。

第一个:

SQL> create table loan
  2  (
  3          barcode                 number (20) not null ,
  4          borrowernumber          number (7) ,
  5          loancurrentdate         date ,
  6          loanreturndate          date ,
  7          loanreserveorder        number (20) ,
  8          paymentdate             date ,
  9          borrower_borrowernumber number not null
 10  );

Table created.

SQL> alter table loan add constraint loan_pk primary key (barcode) ;

Table altered.

第二个:

SQL> drop table loan;

Table dropped.

SQL> create table loan
  2  (
  3      loanno                  INT not null,
  4      loandate                date not null,
  5      loanreturndate          date null,
  6      loanreserve             number (20) null,
  7      paymentdate             date null
  8  );

Table created.

SQL> alter table loan add constraint loan_pk primary key (loanno) ;

Table altered.

SQL>

在第一个 CREATE TABLE 之后说“无法创建表,然后更改它...”到底是什么意思?有什么错误吗?如果有,是哪一个?

“ORA-00942:表或视图不存在”可能是由ALTER TABLE 提出的,因为如果它不存在,您就无法更改它(但谜团在于 为什么你不能创建它)。

“ORA-00904::invalid identifier”表示你使用了表中不存在的列名,如

SQL> alter table loan modify xxx number;
alter table loan modify xxx number
                        *
ERROR at line 1:
ORA-00904: "XXX": invalid identifier

如果可能,请像我一样做 - 复制/粘贴 SQL*Plus 会话,以便我们可以看到您做了什么以及 Oracle 是如何响应的。

【讨论】:

创建的表。谢谢。【参考方案2】:

这应该可行

drop table loan;
create table loan 
(
    loanno                  INT not null,
    loandate                date not null,
    loanreturndate          date null,
    loanreserve             number (20) null,
    paymentdate             date null
);

【讨论】:

以上是关于SQL:无法创建表的主要内容,如果未能解决你的问题,请参考以下文章

SQL 无法创建表,errno 150

SQL的新手。无法创建表并插入值

pyspark 2.4 无法从 sql 命令创建表需要 Hive 支持才能创建 Hive TABLE

SQL Server:无法在视图上创建索引,因为它引用派生表。

SQL Server 不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项

SQL Management Studio 在脚本创建后无法识别表存在