Re: Quoted string in select and insert
От | Bob McConnell |
---|---|
Тема | Re: Quoted string in select and insert |
Дата | |
Msg-id | 4F50B870.6000005@lightlink.com обсуждение исходный текст |
Ответ на | Quoted string in select and insert (Alexander Reichstadt <lxr@mac.com>) |
Ответы |
Re: Quoted string in select and insert
|
Список | pgsql-novice |
Alexander Reichstadt wrote: > Hi, > > I just migrated from mysql and am running into an issue I found no > solution for when researching. Using the web interface I can insert > values that contain single-quotes. But using the CLI I found no way > to select or insert single quotes: > > PetWork=# select * from persons where firstname='\'Peter\''; Invalid > command \'';. Try \? for help. PetWork-# select * from persons where > firstname='\\'Peter\\''; Invalid command \. Try \? for help. > PetWork-# select * from persons where firstname='\\\'Peter\\\''; > Invalid command \. Try \? for help. PetWork-# select * from persons > where firstname='\\\\'Peter\\\\''; Invalid command \. Try \? for > help. PetWork-# select * from persons where > firstname='\\\\'Peter\\\\''; > > On different forums the solution suggested is to prepend backslashes. > But it doesn't matter how many backslashes I prepend, it always > fails. What does one have to do to achieve that? > > Thanks for any help The SQL specification lists the apostrophe as the official escape character. This is what Postgres uses. The backslash is a non-standard extension. If you want to store or match an apostrophe in the database, you need to double it. The standard suggestion to convert dumps and scripts is a sed substitution command, something like this: $ sed "s/\\\'/\'\'/g" > temp.sql I don't know if that is available on your MAC. A Google search on the phrase "convert mysql to postgresql sql" will lead you to a wealth of information on this topic. You are likely to have some problems with data types as well. Bob McConnell N2SPP
В списке pgsql-novice по дате отправления: