2013-06-14 4 views
0

Я хотел создать новую таблицу, но где-то есть синтаксическая ошибка. Однако я не вижу, где, независимо от того, как часто я просматриваю это.MySQL: ошибка синтаксиса при создании таблицы

Может ли кто-нибудь указать мою ошибку?

Dim cmdCreate As New MySqlCommand("CREATE TABLE inout (inout_seacher TEXT,inout_guid TEXT,inout_blob LONGBLOB,inout_inouttype INTEGER,inout_automaticallyparsed TINYINT(1)," & _ 
            "inout_price DOUBLE,inout_companyguid TEXT,inout_datetime TEXT,inout_title TEXT,inout_catid INTEGER,inout_vat INTEGER,inout_banktype INTEGER," & _ 
            "inout_banktransferprice DOUBLE,inout_expenseinvoiceexistsinguid TEXT,inout_orderguid TEXT,inout_inoutsubtype INTEGER,inout_outinvoicetype INTEGER)", g_CnWebDB) 

Благодарим за помощь!

+0

@Strawberry LOL @ InOut :-))) Спасибо за информацию. И спасибо за ДЕСЯТИЛ! Можете ли вы ответить на свой комментарий? – tmighty

ответ

0

Не повезло. Верьте или нет. «Inout» - это зарезервированное слово в MySQL. Либо оберните его в backticks (`), либо (лучше) назовите его чем-то другим. Кроме того, вы уверены, что хотите DOUBLE, а не DECIMAL?

0

"inout" зарезервированное слово. Попробуйте другое имя для таблицы. Вы также можете указать название таблицы, используя (), so ( inout`), становится приемлемым.

0

Как уже говорила Клубника, это зарезервированное слово, используемое для процедур; непосредственно от MySQL.com:

Начиная с MySQL 5.0.30 хранимые процедуры, которые не принимают аргументов, могут быть , вызываемые без круглых скобок. То есть, CALL p() и CALL p эквивалентны .

CALL может передавать значения своим вызывающим абонентам с использованием параметров, которые являются , объявленными как OUT или . INOUT параметров. Когда процедура вернется, клиентская программа также может получить количество строк, затронутых для окончательного оператора , выполненного в рамках процедуры: На уровне SQL вызовите функцию ROW_COUNT(); из API C, вызовите функцию mysql_affected_rows().