Ошибка создания таблицы MySQL?? Может быть, проблемы с версией?

#php #mysql #sql #mysql-error-1064 #mysql-error-1005

#php #mysql #sql #mysql-ошибка-1064 #mysql-ошибка-1005

Вопрос:

Я получаю следующее от mysql_error ():

У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с —>’assets’ (‘assetid’ INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (‘assetid'<— в строке 1

Я также пробовал что-то подобное :

 'assets' ('assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  

…но безуспешно. Версия mysql 5.0.7.

Редактировать:

На самом деле, я сначала попробовал это без (‘), прежде чем поместить его. Код динамический, но это примеры:

 CREATE TABLE 'assets' (
   'assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY('assetid'),
    'rfid' VARCHAR( 128 ) ,
    'createddate' DATE ,
    'modifieddate' DATE ,
    'curlocid' INT( 11 ) ,
    'type' VARCHAR( 128 ) ,
    'brand' VARCHAR( 128 ) ,
    'name' VARCHAR( 128 ) ,
    'condition' VARCHAR( 128 ) 
);
  

РЕДАКТИРОВАТЬ 2:

Только что я попытался заменить все одинарные кавычки (‘ ) обратными галочками ( ` ).. Произошла другая ошибка..

Не удается создать таблицу ‘mydb.assets’ (ошибка: 121)

Это лучше или хуже?

РЕДАКТИРОВАТЬ 3:

Я попытался создать ее, используя разные имена таблиц, и угадайте, что? Это работает! Черт возьми, почему я не могу создать имя таблицы ‘assets’?? это потому, что есть какие-то остатки для предыдущей операции?? если да, то как мне это очистить?? что, если я скажу, что удаляю таблицу, удаляя ее файл??(frm, myd, myi) (не удаляю из-за лени).. как мне это исправить?

Комментарии:

1. не могли бы мы просмотреть полный запрос, который вы пытаетесь запустить, пожалуйста, хотя ошибка очень полезна, нам все равно нужно будет просмотреть остальную часть запроса;

2. вы говорите, что код динамический, означает ли это, что активы и assetid — это имя примера, и если да, то являются ли эти примеры теми, в которых действительно ошибка, или вы просто это придумали?

3. идентификатор объекта до тех пор, пока curlocid не будет предопределен.. Другие — это введенные пользователем значения.. Приведенные мной примеры приводят к ошибке. Я вывожу запрос вместе с mysql_error..

Ответ №1:

Было бы полезно просмотреть весь ваш код.

Немного основываясь на том, что я вижу, вам нужно устранить все эти галочки. Это должно сработать:

 create table assets ( 
      assetid  int unsigned not null auto_increment primary key 
);
  

Я запустил это нормально на сервере MySQL 5.5

Комментарии:

1. Я уже пробовал это без этих пометок раньше.. Я обновил вопрос для sql-запроса..

2. то, что исправление одной ошибки не исправляет программу, не означает, что это не было ошибкой. Это просто означает, что это не единственная ваша ошибка.

Ответ №2:

хорошо, я не уверен, что здесь происходит, дорогая, но я скопировал и вставил ваш код и получил ту же ошибку, поэтому я скопировал построчно, все еще с разрывами в тех местах, где они должны были быть, поэтому я напечатал это построчно, пришлось немного повозиться, но я получил это, за исключением «condition», которое может быть зарезервированным словом, но я сокращаю его, вот что я получил

 create table assets ( 
     assetid  int unsigned not null auto_increment,
    primary key(assetid),
    rfid varchar(128),
    createddate DATE,
    modifieddate DATE,
    curlocid INT(11),
    type varchar(128),
    brand varchar(128),
    name varchar(128),
    cond varchar(128)
);
  

Ответ №3:

Я думаю, вам нужно использовать обратные тики (`) вместо одинарных кавычек (‘) при цитировании имен таблиц или столбцов.

Ответ №4:

Этот вопрос старый, но я просто собираюсь рассказать ответ о том, как это решить. На случай, если кто-то наткнулся на это .. В данном случае используется ДВИЖОК по умолчанию. До сих пор я не замечал, что сервер, который я использую (Z-WAMP), настраивает INNODB в качестве движка по умолчанию. После того, как я изменил его на MyISAM, который является движком по умолчанию для mysql, все работает отлично!! тем не менее, спасибо за ребят, которые мне помогают..

В этом файле -> my.cnf измените эту строку:

 default-storage-engine=MyISAM