‹type 'exceptions.SyntaxError'› недопустимый размер имени таблицы/столбца является ВСЕ зарезервированным ключевым словом SQL/NOSQL

      db.define_table('bookspace',
            Field('locaton','string'),
            Field('size','string'),
            Field('availablefrom', 'string'),
            Field('availableto', 'string'),
            Field('rooftype', 'string'),
            Field('sitetype', 'string'),
            Field('name', 'string'),
            Field('email', 'string'),
            Field('mobile', 'string'),
            Field('industry_food', 'string'),
            Field('industry_ecommerce', 'string'),
            Field('industry_furniture', 'string'),
            Field('industry_exim', 'string'),
            Field('industry_auto', 'string'),
            Field('industry_chemical', 'string'),
            Field('industry_logistics', 'string'),
            Field('industry_construction', 'string'),
            Field('industry_agriculture', 'string'),
            Field('industry_telecom', 'string'),
            Field('industry_others', 'string'),
            Field('parameter_rent','string'),
            Field('parameter_numgates', 'string'),
            Field('parameter_numdocks', 'string'),
            Field('parameter_centralheight', 'string'),
            Field('parameter_sidewallheight', 'string'),
            Field('parameter_parkingarea', 'string'),
            Field('parameter_firenoc', 'string'),
            Field('parameter_foodlicense', 'string'),
            Field('service_transportation','string'),
            Field('service_security', 'string'),
            Field('service_cctv', 'string'),
            Field('service_insurance', 'string'),
            Field('service_racking', 'string'),
            Field('service_pallets', 'string'),
            Field('service_forklift', 'string'),
            Field('service_powerbackup', 'string'),
            Field('service_loading', 'string'),
            format='%(name)s')

Набрав приведенный выше код, я получаю эту ошибку (недопустимое имя таблицы/столбца «размер» - это «ВСЕ» зарезервированное ключевое слово SQL/NOSQL). Помогите мне избавиться от этого. что следует использовать в этом случае. спасибо


person Sharan Kumar    schedule 28.05.2016    source источник


Ответы (3)


Размер — это слово, зарезервированное базой данных. То есть они имеют особое значение для базы данных и поэтому не могут быть переопределены. По этой причине их нельзя использовать для именования объектов базы данных, таких как столбцы, таблицы или индексы. Попробуйте использовать другое имя вместо этого :)

person Big_VAA    schedule 28.05.2016


db = DAL(..., entity_quoting=True)

http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Database-quoting-and-case-settings-entity_quoting-ignore_field

person cetver    schedule 28.05.2016
comment
Это должно быть заключено в кавычки для всех полей таблицы, а в выходном sql вместо size varchar(10) будет "size" varchar(10) - person cetver; 28.05.2016