Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > สอบถามเรื่อง foreign key ผมสร้าง 2 ตารางครับ ใน appseav โครงสร้างตาราง `



 

สอบถามเรื่อง foreign key ผมสร้าง 2 ตารางครับ ใน appseav โครงสร้างตาราง `

 



Topic : 043536



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์




ผมสร้าง 2 ตารางครับ ใน appseav

Code
-- โครงสร้างตาราง `gm_checkform`
--

CREATE TABLE `gm_checkform` (
`PETITION_ID` char(7) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_NUM` int(11) NOT NULL,
`CHECKFORM_DATE` date NOT NULL,
`CHECKFORM_LOAD` int(11) NOT NULL,
`CHECKFORM_METER` varchar(10) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_VOLT` int(11) NOT NULL,
`CHECKFORM_PHASE` int(11) NOT NULL,
`CHECKFORM_SEAY` int(11) NOT NULL,
`CHECKFORM_211` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_212` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_213` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_221` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_222` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_223` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_224` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_241` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_242` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_243` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_244` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_245` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_25` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_STATUS` char(1) collate utf8_unicode_ci NOT NULL,
`EMPLOYEE_WRITE` varchar(100) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`PETITION_ID`,`CHECKFORM_NUM`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Code
-- โครงสร้างตาราง `gm_airwalk`
--

CREATE TABLE `gm_airwalk` (
`PETITION_ID` char(7) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_NUM` int(11) NOT NULL,
`AIRWALK_CHECK1` char(1) collate utf8_unicode_ci NOT NULL,
`AIRWALK_CHECK2` char(1) collate utf8_unicode_ci NOT NULL,
`AIRWALK_CHECK3` char(1) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`PETITION_ID`,`CHECKFORM_NUM`),
KEY `CHECKFORM_NUM` (`CHECKFORM_NUM`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


ในตาราง gm_airwalk ผมสร้าง foreign key PETITION_ID ได้ แต่ CHECKFORM_NUM สร้างไม่ได้
มันขึ้น Error creating foreign key (check data types) : CHECKFORM_NUM ครับ
ผมสร้างฟิว CHECKFORM_NUM ทั้งชื่อ ทั้งชนิดเหมือนกัน แต่มันก็ยัง error
ช่วยอธิบายด้วยครับ ว่าเป็นเพราะอะไร แล้วแก้ยังไงครับ ขอบคุณมากครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-06-01 18:53:05 By : exdo View : 2939 Reply : 14
 

 

No. 1



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

มันก้อถูกนะคับ แหะๆ แต่ผิดหลักการสร้าง database ครับ 2 table ไม่ควรมี primary key เหมือนกัน






Date : 2010-06-01 20:32:35 By : kerb
 


 

No. 2



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


พอดี key มันเป็นแบบ strong ครับ มันต้องเอา key อีกตารางมาเป็น key หลัก อะครับ ถ้า key เดียวได้ แต่ 2 key นี้ error เลย ผม นอมัลไล อะครับ ห้ามมีข้อมูลที่ไม่จำเป็นอะครับ
Date : 2010-06-01 21:14:12 By : exdo
 

 

No. 3



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ผมลองเปลี่ยน PRIMARY KEY แล้ว ก็ยังขึ้น error เหมือนเดิมครับ ช่วยด้วยครับทำไงดี
Date : 2010-06-01 21:29:01 By : exdo
 


 

No. 4



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ผมขอดู ER ของ 2 Table นี้หน่อยได้มั้ยคับ
Date : 2010-06-02 01:04:17 By : kerb
 


 

No. 5



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


แปบนะครับ
Date : 2010-06-02 01:12:58 By : exdo
 


 

No. 6



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

แต่ผม copy ของคุณไปสร้างง่ะ สร้างได้นะ
Date : 2010-06-02 01:38:28 By : kerb
 


 

No. 7



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


er diagram

ตรงกลางคือตาราง checkform ครับ แล้วจะมีให้เลือกว่าจะเดินสายแบบไหน เดินลอยอากาศ แล้วก็เดินใต้ดินครับ ถ้าเลือกเดินใต้ดินก็ให้ไปเก็บในตารางเดินใต้ดิน ถ้าเลือกเดินลอยอากาศ ก็ให้ไปเก็บในตารางเดินลอยอากาศ และที่ต้องแยก 2 ตารางเพราะ ฟิวส์ การเก็บค่าย่อยของแต่ละอันไม่เหมือนกันครับผม เดินใต้ดินก็เก็บข้อมูล 1 ฟิว แต่เดินลอยอากาศต้องเก็บข้อมูล 3 ครับ แล้วที่ใช้ PRIMARY KEY เหมือนกันเพราะ ตาราง เดินลอยอากาศ แล้วก็เดินใต้ดิน เป็นข้อมูลย่อยของตาราง checkform ครับ
Date : 2010-06-02 01:42:11 By : exdo
 


 

No. 8



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


สร้างตารางได้ครับ แต่มันไม่สามารถสร้าง foreign key ในฟิว checkform_num ได้ครับ สร้างได้แต่ฟิว PETITION_ID ครับ
Date : 2010-06-02 01:45:24 By : exdo
 


 

No. 9



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ถ้างั้นถูกแล้วคับ ผมชินกับการ ใช้ id เป็น PK เพราะเวลาคิวรี่มันจะไวกว่า เลยงงๆ 555 ขอโทษทีคับ

นี่ผม export จาก phpmyadmin ผม ลอง copy ไปลองดูคับ
--
-- โครงสร้างตาราง `gm_airwalk`
--

Code
CREATE TABLE `gm_airwalk` (
`PETITION_ID` char(7) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_NUM` int(11) NOT NULL,
`AIRWALK_CHECK1` char(1) collate utf8_unicode_ci NOT NULL,
`AIRWALK_CHECK2` char(1) collate utf8_unicode_ci NOT NULL,
`AIRWALK_CHECK3` char(1) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`PETITION_ID`,`CHECKFORM_NUM`),
KEY `CHECKFORM_NUM` (`CHECKFORM_NUM`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


--
-- dump ตาราง `gm_airwalk`
--


-- --------------------------------------------------------

--
-- โครงสร้างตาราง `gm_checkform`
--

Code
CREATE TABLE `gm_checkform` (
`PETITION_ID` char(7) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_NUM` int(11) NOT NULL,
`CHECKFORM_DATE` date NOT NULL,
`CHECKFORM_LOAD` int(11) NOT NULL,
`CHECKFORM_METER` varchar(10) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_VOLT` int(11) NOT NULL,
`CHECKFORM_PHASE` int(11) NOT NULL,
`CHECKFORM_SEAY` int(11) NOT NULL,
`CHECKFORM_211` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_212` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_213` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_221` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_222` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_223` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_224` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_241` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_242` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_243` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_244` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_245` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_25` char(1) collate utf8_unicode_ci NOT NULL,
`CHECKFORM_STATUS` char(1) collate utf8_unicode_ci NOT NULL,
`EMPLOYEE_WRITE` varchar(100) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`PETITION_ID`,`CHECKFORM_NUM`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Date : 2010-06-02 01:51:06 By : kerb
 


 

No. 10



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ลองดูก่อนครับผม
Date : 2010-06-02 02:32:40 By : exdo
 


 

No. 11



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


แหะๆ คือตารางผมเป็นแบบ InnoDB ครับ แต่ของท่านเป็น Myisam ครับผม มันสร้าง foreign key ใน รีเลชั่นไม่ได้ครับ
ขอบคุณท่านมากนะครับ ถ้าไม่ได้ไงเดี๋ยวผมถึก code ก็ได้ครับผม แต่ถ้าได้ก็อย่าลืมมาบอกกันมั่งนะครับ
Date : 2010-06-02 02:39:30 By : exdo
 


 

No. 12



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

คุณสร้างไปก่อนแล้วค่อยกำหนด FK ทีหลังได้มะ
Date : 2010-06-02 03:23:44 By : kerb
 


 

No. 13



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


อืมมม.. ขอแจมมั่งนะครับ
สมมติว่าอันนี้คือ sql ที่จะสร้าง fk นะครับ

alter table gm_airwalk
add constraint airwalk_fk foreign key (petition_id, checkform_num) references gm_checkform (petition_id, checkform_num) on update cascade

ผมเดาเอานะครับว่า ที่สร้างไม่ได้อาจจะมีข้อมูลอยู่ใน gm_airwalk ไปบ้างแล้ว (ไม่ใช่ table ว่างๆ)
คุณอาจ insert ข้อมูลใน table gm_airwalk ไปเล่นๆก่อนเพื่อ test program ซึ่งข้อมูลที่ insert ไปแล้วนั้น
หาก link มาจาก gm_checkform มันจะไม่มี คือไม่มี parent record

หากต้องการสร้าง fk บน table ใดๆ(gm_airwalk)โดยที่ table นั้นมีข้อมูลอยู่ก่อน และต้องการ reference ไปหา table แม่(gm_checkform) แล้ว ทุก record ใน table ลูก(gm_airwalk) จะต้องเป็น record ที่สามารถ link มาจาก table แม่ได้

อืมม.. ผมเขียนเองอ่านแล้วก็ยังงงๆ ลองดูนะครับ ว่า record ใน gm_airwalk อันไหนที่ไม่สามารถถูก query ออกมาได้ หากมีการ inner join มาจาก gm_checksum
Date : 2010-06-02 09:09:21 By : pnbps
 


 

No. 14



โพสกระทู้ ( 217 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ขอบคุณครับผมตอบคุณ pnbps ผมลบข้อมูลออกจากตารางหมดแล้วครับ เพราะไม่งั้นคงสร้าง forien key ในฟิว petition_id ไม่ได้ครับ ถึงตอนนี้ก็ยังไม่ได้ครับ ผมเลย coding แก้เรียบร้อยแล้วครับผม ขอบคุณมากครับ ผมสร้งก่อนแล้วครับแต่ก้ยังไม่ได้ครับผม
Date : 2010-06-02 22:56:38 By : exdo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่อง foreign key ผมสร้าง 2 ตารางครับ ใน appseav โครงสร้างตาราง `
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่