即使创建了表,SQL错误1113

时间:2019-05-11 07:35:03

标签: mysql sql

我得到一个错误1113,它指出表中没有列,即使我确实启动了它们,没有人知道为什么会这样吗?

还要在“插入P(Pid,pstring,Tid)”下,如何将Tid设置为T表中Tid的外键,这样我就不必手动将其插入?

DROP DATABASE IF exists DB1;
CREATE DATABASE DB1;
USE DB1;
Create Table T;
insert into T (Tid, tstring)
values (1, "t1");
Create Table P;
insert into P (Pid, pstring, tid)
values (1, "p1", 1),
 (2, "p2", 1),
 (3, "p3", 1),
 (4, "p4", 1),
 (5, "p5", 1);
SHOW TABLES;

2 个答案:

答案 0 :(得分:0)

mysql / mariadb告诉您问题出在哪里

MariaDB [sandbox]> Create Table T;
ERROR 1113 (42000): A table must have at least 1 column

答案 1 :(得分:0)

您没有在Create Table T;Create Table P;命令中创建任何列。要创建列并添加外键,请使用类似以下代码的代码:

Create Table T (Tid INT PRIMARY KEY,
                tstring VARCHAR(100)
                );
Create Table P (Pid INT PRIMARY KEY,
                pstring VARCHAR(100),
                tid INT,
                FOREIGN KEY (tid) REFERENCES T(Tid)
                );

您可以根据需要调整tstringpstring的大小。关于创建外键的重要一点是T.Tid必须具有索引,并且P.tid的类型必须与T.Tid的类型匹配。

Demo on dbfiddle