• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشکل با حالت auto_increment

- RaHa -

کاربر تازه وارد
تاریخ عضویت
15 نوامبر 2010
نوشته‌ها
13
لایک‌ها
0
سلام.
دوستام در بانکم...یه فیلد id تعریف کردم...

وقتی در قسمت Extra حالت auto_increment رو براش انتخاب میکنم خطا میگیره و بانک رو ایجاد نمیکنه؟؟؟
 

- RaHa -

کاربر تازه وارد
تاریخ عضویت
15 نوامبر 2010
نوشته‌ها
13
لایک‌ها
0
کد:
پرس و جوي SQL: 

CREATE TABLE `news`.`admin` (

`id` INT NOT NULL AUTO_INCREMENT ,
`user` VARCHAR( 32 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL ,
PRIMARY KEY ( `user` , `id` ) 
) ENGINE = InnoDB 

پيغام MySQL : 

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
42
محل سکونت
یه خورده اونورتر
p key فقط یک column میتونه باشه الان هم user کی هست هم id باید کی بشه که میشن دو تا.

درستش اینه که پرایمری کی، user رو پاک کنی:

کد:
CREATE TABLE `news`.`admin` (

`id` INT NOT NULL AUTO_INCREMENT ,
`user` VARCHAR( 32 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
) ENGINE = InnoDB
 

- RaHa -

کاربر تازه وارد
تاریخ عضویت
15 نوامبر 2010
نوشته‌ها
13
لایک‌ها
0
p key فقط یک column میتونه باشه الان هم user کی هست هم id باید کی بشه که میشن دو تا.

درستش اینه که پرایمری کی، user رو پاک کنی:

کد:
CREATE TABLE `news`.`admin` (

`id` INT NOT NULL AUTO_INCREMENT ,
`user` VARCHAR( 32 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
) ENGINE = InnoDB
من تو تنظیماتش user رو به عنوان کلید اصلی انتخاب کردم
و به id هم حالت اتو نامبر دادم... که اینطوری شد...(یعنی واسه id کلید نذاشتم)


نمیشه یعنی user کلید اصلی باشه که نام کاربری تکرار نشه؟!!!
!!!!
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
42
محل سکونت
یه خورده اونورتر
نه ولی میتونی user رو unique بذاری (not null نباشه خطا بگیری null بذار)
 

ya_ali_mavla

Registered User
تاریخ عضویت
8 ژانویه 2012
نوشته‌ها
1,741
لایک‌ها
1,540
محل سکونت
کرمانشاهان
این مشکل را من هم داشتم بد بختانه مشکل بدی و شاید یکی از گاف های بزرگ mysql باشه واقعا ضد حاله
ولی من این فکر بسرم زد که هم id و هم کلید جدولم را کلید قرار بدم و از توی برنامم به id حالت شمارندگی بدم یکم سخته ولی میشه
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
42
محل سکونت
یه خورده اونورتر
آخه دو تا کلید هم زمان معنا و فایده ای نداره اگر کنترل بیشتر لازم هست باید داخل کد انجام بشه نه در ساختار دیتابیس
 
بالا