2012-01-18 2 views
0

У меня есть следующие таблицы: Лица, Person_Categories и Person_PersonCategories, которая является связующей таблицей для отношения n: m.Вставить, обновить, удалить операторы в запросе

Я также написал следующий запрос, но инструкция insert работает неправильно. Вставка, обновление и удаление - это отдельные инструкции. Сообщение об ошибке я получаю «Количество столбцов не совпадает с количеством значений в строке 1»

SELECT Persons_PersonCategories.PersonID, PrsCategory 
FROM Person_Categories 
INNER JOIN Persons_PersonCategories 
ON Persons_PersonCategories.PrsCatID = Person_Categories.PrsCatID 

INSERT INTO Persons_PersonCategories 
VALUES (:PrsCategory) 

UPDATE Persons_PersonCategories 
SET Persons_PersonCategories.PrsCatID = :PrsCatID 
WHERE Person_Categories.PrsCatID = :OLD PrsCatID 
AND Persons.PersonID = :OLD PersonID 

DELETE FROM Persons_PersonCategories 
WHERE Person_Categories.PrsCatID = :PrsCatID 
AND Persons.PersonID = :PersonID; 

Любая помощь будет оценена, дзан

+0

вы, возможно, придется указать список столбцов в вашей вставки заявления, например: вставить в таблицу (col1, col2) значения (: знач1,: val2) –

+1

государственный ваша схема таблицы, пожалуйста. –

+0

Это не похоже на один запрос. Скорее, это выглядит как четыре отдельных заявления. – dasblinkenlight

ответ

1

Укажите столбец обновляется:

INSERT INTO Persons_PersonCategories (PrsCategory) VALUES (:PrsCategory) 

Замените правильное имя столбца вместо PrsCategory, если я не правильно догадался, что вы пытаетесь сделать.

0

Похоже, вам нужно добавить PersonId

INSERT INTO Persons_PersonCategories(PersonID, PrsCatID) 
VALUES (:PersonID, :PrsCatID) 
Смежные вопросы