2013-06-15 1 views
0

У меня есть обзор таблицы (movie_id, user_id, reviewtext, дата, время, любит, статус)/ я получаю ошибкуИсправляющий столбец «columnname» не существует pgsql в базе данных. Двойная кавычка против апострофа ошибки

column "exist" does not exist LINE 1: INSERT INTO review values ($1, $2, $3,$4,$5 ,0,"exist") ^) 

, когда я хочу, чтобы вставить значения в PostgreSQL база данных. Я больше не могу изменять код, так что есть ли способ сделать эту работу, изменив базу данных, например, добавив столбец?

Код для вставки следующим образом:

$query = $this->db->prepare('INSERT INTO review values (:movieid, :userid, :review,:date,:time ,0,"exist")'); 
$result = $query->execute(Array(':movieid' => $movieid, ':userid' => $userid, ':review' => $review, ':date' => $date, ':time' => $time)); 

Я понимаю, что способ исправить это, чтобы использовать одиночные кавычки для столбца «статуса», но единственное, что я могу сделать, это изменить базу данных.

ответ

1

Нет, вы не можете.

Если вы использовали правильную вставку - с именованными столбцами:

insert into review (column1, column2, column3) values (....) 

, то это может быть теоретически можно сделать, добавив столбец «существует» и триггером. Но это было бы очень вдали от разумного решения.

+0

Я попытался добавить столбец «существует» со значением по умолчанию «существует», но это не работает, поскольку в таблице диапазонов нет выбора. (целевая таблица «обзор» не находится в RHS в rangetable, поэтому она появляется. – wildplasser

+0

Следующий шаг: функция «существует» без аргументов, возвращающая «существует» не распознается в качестве функции синтаксическим анализатором без конечных скобок. Вызов его '' exist "()' дает желаемый результат. – wildplasser

+0

Ну, я также сказал о добавлении триггера. –