Home > MySQL > Xử lý một số lỗi với MySQL auto_increment

Xử lý một số lỗi với MySQL auto_increment

Khi bạn thiết kế database, thưởng chúng ta hay để khóa chính primary id có định dạng là auto_increament

Ví dụ:


CREATE TABLE `table_product` (
`product_id` INT(12) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`product_id`)
)
ENGINE=InnoDB
ROW_FORMAT=DEFAULT

Một hôm đột nhiên truy vấn thêm dữ liệu bị báo lỗi:


"Failed toread auto-increment value from storage engine"
Hoặc
Duplicate entry '123'forkey'PRIMARY'

Kiểm tra dữ liệu bảng table_product chưa có khóa 123, khắc phục lỗi trên như sau:
(nguyên nhân gây ra lỗi nhantam sẽ để cập ở bài khác)

Cách 1 Truy vấn:


SHOW table STATUS;

Trạng thái các bảng dữ liệu sẽ hiện lên, bạn để ý trạng thái của bảng table_product, cột Auto_increment, chúng ta sẽ thấy có giá trị là một con số rất lớn. Chúng ta phải sửa lại giá trị này bằng cách

Truy vấn:


ALTER TABLE `table_product` AUTO_INCREMENT = 1
//để định dạng lại cho bảng table_product

Cách 2: nếu bạn dùng tool quản lý MySQl (HeidiSQL) chung ta sẽ nhanh chóng phát hiện ra lỗi

dbname / table_name / tab Table: table_name / tab CREATE code

Chúng ta sẽ thấy dòng AUTO_INCREMENT là một con số rất lớn như bên dươi


CREATETABLE`table_product`(
`product_id`INT(12)UNSIGNED NOTNULL AUTO_INCREMENT,
`name`VARCHAR(255)NOTNULL,PRIMARYKEY(`product_id`)
)
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
AUTO_INCREMENT=18446744073709551615

nhantam
Công ty thiết kế web Panpic

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: