Re: column name gets substitudes inside an execute statement of a trigger function. how to avoid it?!
В списке pgsql-general по дате отправления:
| От | Richard Huxton |
|---|---|
| Тема | Re: column name gets substitudes inside an execute statement of a trigger function. how to avoid it?! |
| Дата | |
| Msg-id | 4A2E79FA.3020304@archonet.com обсуждение исходный текст |
| Ответ на | column name gets substitudes inside an execute statement of a trigger function. how to avoid it?! ("G. Allegri" <giohappy@gmail.com>) |
| Ответы |
Re: column name gets substitudes inside an execute
statement of a trigger function. how to avoid it?!
|
| Список | pgsql-general |
G. Allegri wrote:
>
> ERROR: Column 'lets_try' does not exist
> LINE 1: INSERT INTO seconda (nome) VALUES ('lets_try')
>
> My function and trigger are:
>
> CREATE OR REPLACE FUNCTION fun1() RETURNS TRIGGER AS
> $primaprova$
> DECLARE
> nome varchar;
> BEGIN
> IF (TG_OP='INSERT') THEN
> execute 'INSERT INTO ' || NEW.table || ' (nome) VALUES( "' || NEW.nome
> || '" );';
This will give VALUES ("lets_try") which is not a valid way to quote a
string. It *is* a valid way to quote an identifier (e.g. a column).
You probably want to use the quote_literal() function anyway to escape
any single-quotes in the value being quoted.
--
Richard Huxton
Archonet Ltd
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера