что не так с командой mysql? - PullRequest
1 голос
/ 09 января 2012

, когда я запускаю следующую команду в phpmyadmin.

CREATE TABLE subscribers (
  'subscriber_id' int(11) NOT NULL auto_increment,
  'customers_id' int(11) default NULL,
  'email_address' varchar(96) NOT NULL default '',
  'email_format' varchar(4) NOT NULL default 'TEXT',
  PRIMARY KEY  ('subscriber_id')
) TYPE=MyISAM;

показывает мне #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''subscriber_id' int(11) NOT NULL auto_increment, 'customers_id' int(11) defaul' at line 2

 INSERT INTO query_builder (query_id, query_category, query_name, query_description, query_string, query_keys_list) VALUES (6, 'email,newsletters', 'All Newsletter Subscribers', 'Returns name and email address of all Customer Account subscribers and all Newsletter-Only subscribers.', 'select c.customers_firstname, c.customers_lastname, s.email_address as customers_email_address from TABLE_SUBSCRIBERS as s left join TABLE_CUSTOMERS as c on c.customers_id = s.customers_id ', '')

показывает: 1062 - Дублирующая запись '6' для ключа 1

я упал, команда верна.я не знаю как это исправить?спасибо.

Ответы [ 3 ]

5 голосов
/ 09 января 2012

Вам не нужна одинарная кавычка вокруг названия столбца. Удалить это.

Это должно быть

CREATE TABLE subscribers (
  subscriber_id int(11) NOT NULL auto_increment,
  customers_id int(11) default NULL,
  email_address varchar(96) NOT NULL default '',
  email_format varchar(4) NOT NULL default 'TEXT',
  PRIMARY KEY  (subscriber_id)
) TYPE=MyISAM;

Хотя, вы можете заключить имя столбца в кавычки, если это противоречит зарезервированным словам mysql.

2 голосов
/ 09 января 2012

Вы не должны использовать строки в качестве имен столбцов.И это ДВИГАТЕЛЬ, а не ТИП.Это должно выглядеть так:

CREATE TABLE subscribers (
  subscriber_id int(11) NOT NULL auto_increment,
  customers_id int(11) default NULL,
  email_address varchar(96) NOT NULL default '',
  email_format varchar(4) NOT NULL default 'TEXT',
  PRIMARY KEY  (subscriber_id)
) ENGINE=MyISAM;
0 голосов
/ 09 января 2012

Просто удалите кавычки вокруг имени столбца и измените последний бит на Engine = MyISAM работал для меня:

CREATE TABLE subscribers (
  subscriber_id int(11) NOT NULL auto_increment,
  customers_id int(11) default NULL,
  email_address varchar(96) NOT NULL default '',
  email_format varchar(4) NOT NULL default 'TEXT',
  PRIMARY KEY  (subscriber_id)
) Engine=MyISAM;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...