2015-02-23 5 views
0

Я делаю предложения для упражнения, и MySQL продолжает приносить мне эту ошибку в этом предложении.Ошибка 1064: Ошибка синтаксиса MySQL

delete centros where cod_centros not in(select cod_centro from personal); 

Вот таблицы:

CREATE TABLE CENTROS (
COD_CENTRO integer NOT NULL, 
TIPO_CENTRO CHAR(1), 
NOMBRE VARCHAR(30), 
DIRECCION VARCHAR(26), 
TELEFONO VARCHAR(10), 
NUM_PLAZAS integer, 
primary key (cod_centro) 
); 

CREATE TABLE PERSONAL (
COD_CENTRO integer NOT NULL, 
DNI integer, 
APELLIDOS VARCHAR(30), 
FUNCION VARCHAR(15), 
SALARIO integer, 
primary key (cod_centro,dni), 
foreign key (cod_centro) references Centros(cod_centro) 
); 

И здесь вставки:

INSERT INTO CENTROS VALUES (10,'S','IES El Quijote', 
'Avda. Los Molinos 25', '965-887654',538); 
INSERT INTO CENTROS VALUES (15,'P','CP Los Danzantes', 'C/Las Musas s/n', 
'985-112322',250); 
INSERT INTO CENTROS VALUES (22,'S', 'IES Planeta Tierra', 'C/Mina 45', 
'925-443400',300); 
INSERT INTO CENTROS VALUES (45,'P', 'CP Manuel Hidalgo', 'C/Granada 5', 
'926-202310',220); 
INSERT INTO CENTROS VALUES (50,'S', 'IES Antoñete', 'C/Los Toreros 21', 
'989-406090',310); 


INSERT INTO PERSONAL VALUES (10,1112345,'Martínez Salas, Fernando', 
'PROFESOR', 220000); 
INSERT INTO PERSONAL VALUES (10,4123005,'Bueno Zarco, Elisa', 
'PROFESOR', 220000); 
INSERT INTO PERSONAL VALUES (10,4122025,'Montes García, M.Pilar', 
'PROFESOR', 220000); 

INSERT INTO PERSONAL VALUES (15,1112345,'Rivera Silvestre, Ana', 
'PROFESOR', 205000); 
INSERT INTO PERSONAL VALUES (15,9800990, 'Ramos Ruiz, Luis', 
'PROFESOR', 205000); 
INSERT INTO PERSONAL VALUES (15,8660990, 'De Lucas Fdez, M.Angel', 
'PROFESOR', 205000); 

INSERT INTO PERSONAL VALUES (22,7650000, 'Ruiz Lafuente, Manuel', 
'PROFESOR', 220000); 
INSERT INTO PERSONAL VALUES (45,43526789, 'Serrano Laguía, María', 
'PROFESOR', 205000); 


INSERT INTO PERSONAL VALUES (10,4480099,'Ruano Cerezo, Manuel', 
'ADMINISTRATIVO', 180000); 
INSERT INTO PERSONAL VALUES (15,1002345,'Albarrán Serrano, Alicia', 
'ADMINISTRATIVO', 180000); 
INSERT INTO PERSONAL VALUES (15,7002660,'Muñoz Rey, Felicia', 
'ADMINISTRATIVO', 180000); 
INSERT INTO PERSONAL VALUES (22,5502678,'Marín Marín, Pedro', 
'ADMINISTRATIVO', 180000); 
INSERT INTO PERSONAL VALUES (22,6600980, 'Peinado Gil, Elena', 
'CONSERJE', 175000); 
INSERT INTO PERSONAL VALUES (45,4163222, 'Sarro Molina, Carmen', 
'CONSERJE', 175000); 

Я не знаю, что делать, я думаю, синтаксис избранных отлично но продолжает приносить ошибку, поэтому я думал, что, возможно, это ошибка из workbench mysql, как всегда, но я не знаю, что делать!

ответ

0

Вам не хватает ключевого слова from, которое указывает, с какой таблицы вы удаляетесь.

Правильное решение:

delete from centros where cod_centros not in (select cod_centro from personal); 

Вот оригинал, полная, за одним столом синтаксис:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name 
    [WHERE where_condition] 
    [ORDER BY ...] 
    [LIMIT row_count] 

Ссылка: MySQL's DELETE Syntax Single-table syntax.

+0

Большое вам спасибо, мой бог, я не знаю, как я не мог ee это, плохой день думаю. Еще раз спасибо! Хорошего дня! – Mike

+0

@MikeZyxt Добро пожаловать. Не стесняйтесь отмечать ответ как принятый, проверяя галочку - когда он разблокируется :) – Jonast92

+0

@Mike Почему вы не приняли ответ? – Jonast92

0

Centros это имя таблицы, так что вы хотите «Удалить FROM Centros где ...»

Смежные вопросы