PDA

View Full Version : خطا در اجرای دستور ساخت جدول



Restlesa
پنج شنبه 17 مهر 1393, 23:06 عصر
سلام بر همگی دوستان
در کد T-SQL زیر کد مربوط به ساخت جدول tbl_admin_logs اجرا نمیشه و خطای Cannot add foreign key constraint رو میده
خطاهشا کمکم کنید


CREATE TABLE IF NOT EXISTS `tbl_users` (
`user_id` mediumint(9) unsigned NOT NULL,
`username` varchar(9) COLLATE utf8_persian_ci NOT NULL,
`password` varchar(100) COLLATE utf8_persian_ci NOT NULL,
`user_admin` tinyint(1) NOT NULL DEFAULT '0',
`name` varchar(30) COLLATE utf8_persian_ci NOT NULL,
`degree` varchar(22) COLLATE utf8_persian_ci NOT NULL,
`personnel_code` varchar(9) COLLATE utf8_persian_ci NOT NULL,
`middle_name` varchar(30) COLLATE utf8_persian_ci NOT NULL,
`bc_number` varchar(10) COLLATE utf8_persian_ci NOT NULL,
`national_code` varchar(11) COLLATE utf8_persian_ci NOT NULL,
`employment_date` varchar(10) COLLATE utf8_persian_ci NOT NULL,
`birthplace` varchar(19) COLLATE utf8_persian_ci NOT NULL,
`account_number` varchar(16) COLLATE utf8_persian_ci NOT NULL,
`tel` varchar(13) COLLATE utf8_persian_ci NOT NULL,
`address` text COLLATE utf8_persian_ci NOT NULL,
`avatar` varchar(42) COLLATE utf8_persian_ci NOT NULL,
PRIMARY KEY (`personnel_code`),
UNIQUE KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;

CREATE TABLE IF NOT EXISTS `tbl_letters` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`personnel_code` varchar(9) COLLATE utf8_persian_ci NOT NULL,
`subject` varchar(50) COLLATE utf8_persian_ci NOT NULL,
`sender` varchar(50) COLLATE utf8_persian_ci NOT NULL,
`date` varchar(11) COLLATE utf8_persian_ci NOT NULL,
`number` varchar(20) COLLATE utf8_persian_ci NOT NULL,
`type_letter` enum('in','out','etc','') COLLATE utf8_persian_ci NOT NULL,
`picture` varchar(42) COLLATE utf8_persian_ci NOT NULL,
`allow_show` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
FOREIGN KEY (`personnel_code`) REFERENCES `tbl_users` (`personnel_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `tbl_login_logs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(15) NOT NULL,
`count` tinyint(1) NOT NULL DEFAULT '1',
`date` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `tbl_admin_logs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(9) NOT NULL,
`date` int(10) unsigned NOT NULL,
`ip` varchar(15) NOT NULL,
`action` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`username`) REFERENCES `tbl_users` (`personnel_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

سعید صابری
جمعه 18 مهر 1393, 12:45 عصر
ایتدا تیبل هاتو بساز بعد کلید های خارجی و.. اضافه کن

Restlesa
شنبه 19 مهر 1393, 17:22 عصر
من از phpmyadmin استفاده می کنم چه طوری باید کلید های خارجیم رو بسازم ؟؟؟

سعید صابری
شنبه 19 مهر 1393, 21:28 عصر
بهتره از یک نرم افزار مدیریت راحت تر مثل WorkBench ویا Sqlyog و... استفاده کنید

Restlesa
شنبه 19 مهر 1393, 22:33 عصر
تو کدی که قرار دادم تمامی جدول ها ساخته میشن به غیر از جدول tbl_admin_logs ... می تونید علتش رو بم بگین

Restlesa
یک شنبه 20 مهر 1393, 12:02 عصر
من برنامه WorkBench رو نصب کردم میشه بهم بگی که دیتابیسی که ساختم رو چه طوری می تونم ازش استفاده کنم؟ آیا باید بصورت model ذخیرش کنم ؟؟؟