评论/回答,如果你需要澄清。我现在有MySQL错误1146的问题。
我有一个名为"cia_data"并在我的数据库中有3个文件——查询1,SQL文件3,SQL文件5。
随附视频显示的代码,我有两个错误。第一个错误是关于DROP TABLE new_table的,这是有意义的,因为它说它是Unknown(错误代码1051),并且执行了几次以确保导入的表不会被计算在内。然后我输入并执行SQL文件5,由于表"不存在"而出现问题。即使是在我创造了它之后。有人有解决办法吗?我需要修复这个错误,以便在我的项目中继续前进。
更多信息请参见此视频:https://www.youtube.com/watch?v=UitvpKdanzoMySQL论坛:https://forums.mysql.com/read.php?152,705063,705069#msg-705069
这些修改是为了修复这个问题:
三个语法错误…
- 唯一索引 可见
MySQL在CREATE TABLE中似乎不像可见或不可见,我不确定为什么。对于创建一个不可见的索引,这是可行的…
create table x( ..., unique index key_f(f), ...);
ALTER INDEX key_f INVISIBLE;
但是在您的情况下,VISIBLE是默认的,所以不需要它。
Create Table末尾缺少分号stmt
在Insert stmt中,SELECT代替列列表开头的左括号
即使做了前面提到的更改,我仍然有错误1051和1146
1051 - Unknown table 'cia_data.new_table'
1146 - Table 'cia_data.new_table' doesn't exist
正文:
查询1的文本
select * from `CIA_DATA`.`new_table`;
SQL文件3文本
USE CIA_DATA;
DROP TABLE new_table;
CREATE TABLE new_table (
Water DECIMAL(3,1) NOT NULL,
Sanitation DECIMAL(3,1) NOT NULL,
GDP INT NOT NULL,
Life DECIMAL(3,1) NOT NULL,
Underweight DECIMAL(3,1) NOT NULL,
Literacy DECIMAL(3,1) NOT NULL,
Electricity DECIMAL(3,1) NOT NULL,
Country VARCHAR(45) NOT NULL,
PRIMARY KEY (GDP),
UNIQUE INDEX Country_UNIQUE (Country ASC) VISIBLE)
ENGINE = InnoDB
SELECT * FROM new_table;
SQL File 5's Text
desc CIA_DATA.new_table;
SELECT * FROM CIA_DATA.new_table;
INSERT INTO `CIA_DATA`.`new_table`
SELECT `Water`,
`Sanitation`,
`GDP`,
`Life`,
`Underweight`,
`Literacy`,
`Electricity`,
`Country`)
VALUES
(68.5,21.8,600,54.2,24.6,37.4,14,'Central_African_Republic');
COMMIT;
编辑:
以下是SQL文件5的更正文本供参考(使用另一个国家的数据):
desc CIA_DATA.new_table;
SELECT * FROM CIA_DATA.new_table;INSERT INTOCIA_DATA
。new_table
选择Water
,Sanitation
,GDP
,Life
,Underweight
,Literacy
,Electricity
,Country
)值,600(68.5, 21.8, 54.2, 24.6, 37.4, 14日Central_African_Republic);
提交;
更正文本,以便我可以关闭此线程:
desc CIA_DATA.new_table;
SELECT * FROM CIA_DATA.new_table;INSERT INTOCIA_DATA
。new_table
选择Water
,Sanitation
,GDP
,Life
,Underweight
,Literacy
,Electricity
,Country
)值,600(68.5, 21.8, 54.2, 24.6, 37.4, 14日Central_African_Republic);
提交;