Код ошибки MySQL 1146 в выводе действия MySQL Workbench
Я только начал изучать SQL. Когда я написал этот код
create database tutorial_1;
use tutorial_1;
create table tutorial
(
id int primary key,
name varchar(40),
duration decimal(4,2),
date date
);
insert into tutorial(id, name, duration, date)
values(1, 'c', 23.12, '2014-02-10');
insert into tutorial
values(2, 'python', 12.45, '2014-02-11');
insert into tutorial
values(3, 'sql', 34.17, '2014-02-14');
create database tutorial_2;
use tutorial_2;
create table tutorial_info
(
tutorial_id int primary key,
views int(40),
likes int(40),
dislikes int(40),
shares int(40)
);
insert into tutorial_info(tutorial_id, views, likes, dislikes, shares)
values (1, 23411, 124, 12, 19);
insert into tutorial_info(tutorial_id, views, likes, dislikes, shares)
values (2, 29019, 920, 100, 234);
insert into tutorial_info
values (3, 9019, 129, 23, 8);
insert into tutorial_info
SELECT t.id, t.name,
ti.views, ti.likes, ti.dislikes, ti.shares
FROM tutorial AS t
JOIN tutorial_info AS ti
ON t.id=ti.tutorial_id;
в файле SQL вывод действия показывает:
Код ошибки: 1146. Таблица "tutorial_2.tutorial" не существует 0,000 сек.
но когда я проверил таблицу на SCHEMAS, я нашел эту таблицу. Что мне сделать, чтобы это исправить?
2 ответа
Вы создаете две отдельные базы данных: tutorial_1
а также tutorial_2
,
Затем вы переключаетесь на tutorial_2
база данных. После этого вы выбираете соединение между tutorial
а также tutorial_info
, tutorial
находится в tutorial_1
база данных, в то время как tutorial_info
в tutorial_2
база данных. Так как вы в tutorial_2
MySQL пытается загрузить записи из tutorial
таблица, которой нет в tutorial_2
базы данных, так как он был создан в tutorial_1
база данных.
РЕДАКТИРОВАТЬ: Я провел несколько экспериментов, и я считаю, что вы можете сделать кросс-базы данных, как это:
SELECT t.id, t.name,
ti.views, ti.likes, ti.dislikes, ti.shares
FROM tutorial_1.tutorial AS t
JOIN tutorial_info AS ti
ON t.id=ti.tutorial_id;
tutorial
это таблица базы данных tutorial_1
, пока вы работаете в области базы данных tutorial2
(после use tutorial_2
). Поэтому вы должны написать:
SELECT t.id, t.name,
ti.views, ti.likes, ti.dislikes, ti.shares
FROM tutorial_1.tutorial AS t
JOIN tutorial_info AS ti
ON t.id=ti.tutorial_id;
В общем, вы должны работать только одну базу данных.