Carsten Haese wrote:
> On Tue, 2007-08-07 at 21:37 -0400, Carsten Haese wrote:
>> On Wed, 2007-08-08 at 00:40 +0200, Paul Boddie wrote:
>>> On Tuesday 07 August 2007 19:17, Carsten Haese wrote:
>>>> On Tue, 2007-08-07 at 11:58 -0500, Lukasz Szybalski wrote:
>>>>> When i do:
>>>>> insert into tablename(id,desc)VALUES(1,'some text')
>>>>>
>>>>> How do I escape 'desc'?
>>>> insert into tablename(id,`desc`) ...
>>> Obviously MySQL supports the above, but I believe that the standard way is 
>>> to 
>>> use double quotes:
>>>
>>> insert into tablename (id, "desc") values (1, 'some text')
>> That is the PostgreSQL way. The standard way (at least as far as
>> Informix understands it) is not to quote table/column names at all and
>> let the parser worry about determining whether the word it's looking at
>> is the name of a thing or a keyword.
> 
> I looked up the standard and must admit that Informix's behavior in this
> regard is non-standard, at least according to SQL92. SQL92 states quite
> unequivocally that "The identifier body of a regular identifier [...]
> shall not be equal [...] to any reserved word." It furthermore states
> that delimited identifiers are delimited by double quotes.
> 
> Maybe Informix is keeping an artifact from pre-SQL times for backwards
> compatibility. Anyway, I just wanted to set the record straight. Paul
> was correct in stating that the standard way of quoting identifiers is
> to use double quotes.
> 

Note that although MySQL does support using double quotes for quoted
identifierss (if the ANSI_QUOTES SQL mode is enabled), a difference
between MySQL and standard SQL in this case is that quoted delimiters
in standard SQL are case sensitive, whereas in MySQL they are not.
_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to