Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: b2l в Nov 21, 2009, 13:15



Титла: MySQL и машина InnoDB
Публикувано от: b2l в Nov 21, 2009, 13:15
Код
GeSHi (SQL):
  1. mysql> SHOW CREATE TABLE Models\G;
  2. *************************** 1. row ***************************
  3.       TABLE: Models
  4. CREATE TABLE: CREATE TABLE `Models` (
  5.  `model_id` int(11) NOT NULL AUTO_INCREMENT,
  6.  `model_name` varchar(200) DEFAULT NULL,
  7.  `make_id` int(11) DEFAULT NULL,
  8.  PRIMARY KEY  (`model_id`)
  9. ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

Код
GeSHi (SQL):
  1. mysql> SHOW CREATE TABLE New_Vehicles\G;
  2. *************************** 1. row ***************************
  3.       TABLE: New_Vehicles
  4. CREATE TABLE: CREATE TABLE `New_Vehicles` (
  5.  `vehicle_id` int(11) NOT NULL AUTO_INCREMENT,
  6.  `model_id` int(11) DEFAULT NULL,
  7.  `modelyear` int(11) DEFAULT NULL,
  8.  `price` decimal(10,2) DEFAULT NULL,
  9.  `color` varchar(200) DEFAULT NULL,
  10.  `description` text,
  11.  PRIMARY KEY  (`vehicle_id`)
  12. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1

Код
GeSHi (SQL):
  1. mysql> ALTER TABLE New_Vehicles ADD CONSTRAINT refmdl FOREIGN KEY (vehicle_id) REFERENCES Model (model_id);
  2. ERROR 1005 (HY000): Can't create table './VehicleInventory/#sql-c7e_3.frm' (errno: 150)

Някакви предложения?
//Накрая ще си запаля печката с тази книга.//


Титла: Re: MySQL и машина InnoDB
Публикувано от: Shmirgel в Nov 21, 2009, 14:22
Здравей backtolife,

Проблема е в неправилното изписване на името на таблицата в частта REFERENCES.
Създал си таблица Models, а в командата ALTER си я изписал само Model.
Взех твоя код и го приложих при мен като промених "Model" на "Models" и нямаше съобщение за грешка.

Успех


Титла: Re: MySQL и машина InnoDB
Публикувано от: b2l в Nov 21, 2009, 14:29
Абе гледах ги буква по буква, но това май не съм го видял:) Мерси :)


Титла: Re: MySQL и машина InnoDB
Публикувано от: Shmirgel в Nov 21, 2009, 14:38
За нищо, радвам се, че помогнах.