1

私のmysqlサーバーに大きなエラーがあります。MySQL は昨日クラッシュしましたが、すべて問題ありません。今日更新したい場合、主キーの追加に問題があります。テーブル A13_product に ADD PRIMARY KEY が必要です ここに作成スクリプトがあります

CREATE TABLE `A13_product` (
`id` INT(11) NOT NULL,
`users_id` INT(11) NULL DEFAULT NULL,
`product_set_id` INT(11) NULL DEFAULT NULL,
`producer_id` INT(11) NULL DEFAULT NULL,
`photos_id` INT(11) NULL DEFAULT NULL,
`photogallery_id` INT(11) NULL DEFAULT NULL,
`name` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`price` DECIMAL(15,5) NULL DEFAULT NULL,
`price_recycling` DECIMAL(15,5) NULL DEFAULT NULL,
`description_short` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_en` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_de` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_sk` TEXT NULL COLLATE 'utf8_czech_ci',
`has_comments` TINYINT(1) NULL DEFAULT NULL,
`active` TINYINT(1) NULL DEFAULT NULL,
`warranty` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`date_add` DATETIME NULL DEFAULT NULL,
`date_edit` DATETIME NULL DEFAULT NULL,
`view_count` INT(11) NULL DEFAULT NULL,
`url` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`sticky` TINYINT(1) NULL DEFAULT NULL,
`delivery_date` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`possible_buy` TINYINT(1) NULL DEFAULT NULL,
`var1` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var2` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_czech_ci',
`var3` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var4` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var5` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`poradi` INT(11) NOT NULL DEFAULT '0',
`tax_rates_id` INT(11) NULL DEFAULT NULL,
`cache_url` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`description_en` TEXT NULL COLLATE 'utf8_czech_ci',
`name_en` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`ics` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var_cz` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var_en` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`branch` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`cast` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`podc` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`weight` DECIMAL(15,5) NULL DEFAULT NULL,
`image` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`stupen` VARCHAR(40) NOT NULL COLLATE 'utf8_czech_ci'
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

これがSQLコマンドです。実行する必要があるのは

ALTER TABLE A13_product ADD PRIMARY KEY(`id`);

そしてエラーは

SQL Error (156): Table 'c2****.A13_product#1' already exists

テーブルでキーを使用していないため、DROP キーを指定すると、テーブルにキーがないことを教えてくれます

テーブル TABLE_contrastion の INFORMATION_SCHEMA を調べると、テーブル A13_product へのキーはありません

どこに問題があるのでしょうか。

4

2 に答える 2

0

Create テーブル構造を次のように変更するだけです。

CREATE TABLE `A13_product` (
`id` INT(11) NOT NULL,
`users_id` INT(11) NULL DEFAULT NULL,
`product_set_id` INT(11) NULL DEFAULT NULL,
`producer_id` INT(11) NULL DEFAULT NULL,
`photos_id` INT(11) NULL DEFAULT NULL,
`photogallery_id` INT(11) NULL DEFAULT NULL,
`name` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`price` DECIMAL(15,5) NULL DEFAULT NULL,
`price_recycling` DECIMAL(15,5) NULL DEFAULT NULL,
`description_short` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_en` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_de` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_sk` TEXT NULL COLLATE 'utf8_czech_ci',
`has_comments` TINYINT(1) NULL DEFAULT NULL,
`active` TINYINT(1) NULL DEFAULT NULL,
`warranty` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`date_add` DATETIME NULL DEFAULT NULL,
`date_edit` DATETIME NULL DEFAULT NULL,
`view_count` INT(11) NULL DEFAULT NULL,
`url` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`sticky` TINYINT(1) NULL DEFAULT NULL,
`delivery_date` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`possible_buy` TINYINT(1) NULL DEFAULT NULL,
`var1` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var2` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_czech_ci',
`var3` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var4` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var5` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`poradi` INT(11) NOT NULL DEFAULT '0',
`tax_rates_id` INT(11) NULL DEFAULT NULL,
`cache_url` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`description_en` TEXT NULL COLLATE 'utf8_czech_ci',
`name_en` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`ics` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var_cz` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var_en` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`branch` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`cast` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`podc` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`weight` DECIMAL(15,5) NULL DEFAULT NULL,
`image` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`stupen` VARCHAR(40) NOT NULL COLLATE 'utf8_czech_ci'
CREATE TABLE `A13_product` (
`id` INT(11) NOT NULL,
`users_id` INT(11) NULL DEFAULT NULL,
`product_set_id` INT(11) NULL DEFAULT NULL,
`producer_id` INT(11) NULL DEFAULT NULL,
`photos_id` INT(11) NULL DEFAULT NULL,
`photogallery_id` INT(11) NULL DEFAULT NULL,
`name` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`price` DECIMAL(15,5) NULL DEFAULT NULL,
`price_recycling` DECIMAL(15,5) NULL DEFAULT NULL,
`description_short` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_en` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_de` TEXT NULL COLLATE 'utf8_czech_ci',
`description_long_sk` TEXT NULL COLLATE 'utf8_czech_ci',
`has_comments` TINYINT(1) NULL DEFAULT NULL,
`active` TINYINT(1) NULL DEFAULT NULL,
`warranty` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`date_add` DATETIME NULL DEFAULT NULL,
`date_edit` DATETIME NULL DEFAULT NULL,
`view_count` INT(11) NULL DEFAULT NULL,
`url` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`sticky` TINYINT(1) NULL DEFAULT NULL,
`delivery_date` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`possible_buy` TINYINT(1) NULL DEFAULT NULL,
`var1` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var2` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_czech_ci',
`var3` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var4` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var5` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`poradi` INT(11) NOT NULL DEFAULT '0',
`tax_rates_id` INT(11) NULL DEFAULT NULL,
`cache_url` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`description_en` TEXT NULL COLLATE 'utf8_czech_ci',
`name_en` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`ics` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var_cz` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`var_en` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`branch` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`cast` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`podc` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`weight` DECIMAL(15,5) NULL DEFAULT NULL,
`image` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_czech_ci',
`stupen` VARCHAR(40) NOT NULL COLLATE 'utf8_czech_ci',
PRIMARY KEY (`id`)
) COLLATE='utf8_general_ci' ENGINE=InnoDB;
于 2012-11-28T08:16:10.937 に答える