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,027

HOME > PHP > PHP Forum > อีกปัญหาของ MySQL กะ trigger คับ CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT);



 

อีกปัญหาของ MySQL กะ trigger คับ CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT);

 



Topic : 006201

Guest




CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
คือผมเขียน code ตามนี้นะคับ

CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT 0
);

DELIMITER |

CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END
|

DELIMITER ;

INSERT INTO test3 (a3) VALUES
(NULL), (NULL), (NULL), (NULL), (NULL),
(NULL), (NULL), (NULL), (NULL), (NULL);

INSERT INTO test4 (a4) VALUES
(0), (0), (0), (0), (0), (0), (0), (0), (0), (0);


เมื่อผม run แล้วเจอปัญหาดังนี้คับ
1. DELIMITER | , | และ DELIMITER ; มันบอกว่าเป็นเครื่องหมายที่ไม่รู้จักคับ (ตามตัวสีแดง)
2. เมื่อผมลองลบ 3 บรรทัดนั้นไปแล้ว ปัญหาจะไปอยู่ที่ semicolon แทน
เมื่อผมใส่ semicolon ตาม code นี้ จะขึ้น error ดังนี้คับ

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO test2 SET a2 = NEW.a1' at line 3

แต่ถ้าผมลบ semicolon ทั้ง 3 ตัวตามตัวสีแดงจะแสดง error ดังนี้คับ

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO test2 SET a2 = NEW.a1

อยากรบกวนผู้รู้ทั้งหลายช่วยชี้แนะด้วยคับ
ขบคุณล่วงหน้าคับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 16 พ.ย. 2548 05:45:16 By : nut_t02 View : 8101 Reply : 15
 

 

No. 1



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

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

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


โทษคับ error สีส้ม แบบเต็มๆ ดังนี้คับ

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO test2 SET a2 = NEW.a1 DELETE FROM test3 WHERE a3 = NEW.a1 ' at line 3






Date : 16 พ.ย. 2548 05:48:17 By : nut_t02
 


 

No. 2

Guest


รู้สึกคำสั่ง sql จะพิมพ์ไม่ถูก การสร้างตาราง ตรง int ที่เคยทำต้องกำหนดขนาดด้วยนะครับ ส่วนตัวอื่น
ลองรัน ดูทีละตัวครับแก้ทีละข้อดีกว่า
Date : 16 พ.ย. 2548 14:01:19 By : ป่าไผ่
 

 

No. 3



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

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

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


เอ่อ ถ้าเราไม่กำหนดขนาดของ int มันจะกำหนดให้เป็นค่าสูงสุดโดยอัตโนมัติ คือ 11 คับ
แต่ถ้าเป็น varchar เราต้องกำหนด คับ

ที่ผมติดคือ trigger อย่างเดียวอ่ะคับ
Date : 16 พ.ย. 2548 17:53:16 By : nut_t02
 


 

No. 4



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



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


ผมแก้แล้วใส่อยางนี้ ไม่มีปัญหาเลย
====================================
Drop Table If Exists `test1`;
CREATE TABLE test1(a1 INT);
Drop Table If Exists `test2`;
CREATE TABLE test2(a2 INT);

Drop Table If Exists `test3`;
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Drop Table If Exists `test4`;
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT 0
);

CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;

INSERT INTO test3 (a3) VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);

INSERT INTO test4 (a4) VALUES (0),(0),(0),(0),(0),(0);
====================================================
Date : 16 พ.ย. 2548 18:05:23 By : JezusMitsui
 


 

No. 5



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



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


ใส่ ; (semicolon) หลัง End นะ
Date : 16 พ.ย. 2548 18:06:28 By : JezusMitsui
 


 

No. 6



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



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


ถ้าคุณ nut_02 ใช้ mysql_front รัน หรือเปล่าครับ
ผมคิดว่า Error น่าจะเกิกจากการที่ mysql_front ไม่รู้จัก Delimiter มากกว่านะครับ
ผมรันใน Mysql Query Browser มันก็ผ่านนะ ตามที่คุณนัท post ข้างบนนะ แต่ถ้ารันใน mysql front มันก็ Error อย่างที่คุณบอก



Date : 16 พ.ย. 2548 18:12:51 By : JezusMitsui
 


 

No. 7



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



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


เมื่อไร MySql Query Browser จะมี GUI ทำ Trigger ซะทีนะ ขอให้ พัฒนาเร็วๆๆ เรา รอท่านอยู่ อิอิ
สร้าง Trigger ใน MySql Query Browser เสร็จ แล้วจะดู Trigger ที่เราสร้างก็มองไม่เหง ต้องไปดูที่ Mysql Front TT
Date : 16 พ.ย. 2548 18:30:30 By : JezusMitsui
 


 

No. 8



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

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

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


เอ่อ แล้วผมใช้ phpmyadmin ในการเขีย trigger ได้ป่าวคับ
Date : 16 พ.ย. 2548 18:31:58 By : nut_t02
 


 

No. 9



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

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

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


สงสัยน่าจะไม่ได้เพราะว่า
ผม copy code ของคุณ JezusMitsui ไป แล้วมันก็ error ที่เดิมอ่าคับ คือ ตรง trigger
เหมือน phpmyadmin มันไม่หนับหนุน compound statement ที่ใช้
BEGIN กับ END คร่อม หรือป่าวคับ

error ดังนี้คับ

ผิดพลาด
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH
ROW BEGIN
INSERT INTO test2
SET a2 = NEW.a1

MySQL แสดง:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO test2 SET a2 = NEW.a1' at line 3

เอ่อรบกวนอีกทีนะคับ
Date : 16 พ.ย. 2548 18:38:07 By : nut_t02
 


 

No. 10



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



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


เออ ก็ลองรันดูซิครับ *-* ผมยังไม่เคยลองเลย เดี๋ยวลองดู
Date : 16 พ.ย. 2548 18:40:30 By : JezusMitsui
 


 

No. 11



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

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

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


ลองแล้วมันขึ้น error อย่างที่แสดงไว้ข้างบนอ่ะคับ
Date : 16 พ.ย. 2548 18:46:09 By : nut_t02
 


 

No. 12



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



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


อืม ผมก็ไม่ได้เหมือนกัน เหอๆๆๆ
สงสัยต้องรัน บน MySql Query Browser 555+
Date : 16 พ.ย. 2548 19:10:51 By : JezusMitsui
 


 

No. 13



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

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

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


แต่ลองทำตามที่คุณ JezusMitsui บอกไว้ให้ใช้
MySQL query browser เขียน trigger
MySQL Front ดู/แก้ไข trigger ก็ โอเคอยู่อ่ะคับ

ยังงัยขอบคุณมากนะคับ

แต่เด๋วผมว่าผมมีเรื่องถามอีกแน่ๆ เลย
เพราะผมต้องใช้ stored procedure กะ trigger ง่ะคับ

ยังงัยเด่วขอแวบไปลอยกระทงก่อนนะคับ
สบายใจแระ clear ไปส่วนนึง
แต่ที่จริงก็อยากจะใช้ phpMyAdmin ให้คุ้ม ซะหน่อยเลยไม่ได้ใช้เลย

Date : 16 พ.ย. 2548 19:43:52 By : nut_t02
 


 

No. 14

Guest


ปัญหาเวลา INSERT INTO แบบนี้ ( ปัญหาโลกแตก )
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
วิธีแก้
อธิบายก่อนนะครับ คือมันบอกให้เราตรวจสอบการเขียน ให้เปิดดูคู่มือ แต่จริง ๆ ไม่ใช่ มันได้ได้เป็นที่ คำสั่ง
INSERT INTO เลย ปัญหามันคือ เป็นที่ฐานข้อมูลเรา
ลองตรวจสอบดูว่า ชื่อฐานข้อมูล ชื่อตาราง ชื่อฟิลล์ มันตรงกับคำ สงวนที่ห้ามใช้หรือเปล่า เช่น teble ห้ามใช้
เราก็เปลี่ยนใหม่ซะ เป็น teble_001 ก็ได้

***************************** เด็ก ป.6 ************************************************
Date : 2010-02-22 14:11:08 By : ta
 


 

No. 15



โพสกระทู้ ( 9,556 )
บทความ ( 2 )



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


ใช้ import จากไฟล์ ก็น่าจะได้ เออเร่อร์มันแจ้งอะไรครับ ไม่เห็นบอก

create ตาราง cars ขึ้นมาก่อน
ข้อมูลมันเป็น utf8 ก็เซท collation เป็น utf8_unicode_ci หรือ utf8_general_ci ไว้ด้วย

คลิกที่ตาราง cars ถ้ามีอยู่แล้ว(select database) ต่อด้วย import จาก ไฟล์

ตารางที่เก็บ tis-620 น่ะเลิกใช้ได้แล้ว front ต่างๆ มัน suport thai เกือบหมดแล้ว
ไม่ได้ดูถูกหัวคิดคนไทยหรอกนะ แต่แค่การจัดเรียงและนำเสนอ เอาที่มันเป็นมาตรฐาน ดีกว่าไหม

สมอ. เป็นหน่วยงาน รัฐบาล ทำงานกำหนดมาตรฐาน IT
แต่น่าจะไปอยู่หน่ายงาน พิพิธภัณฑ์มากกว่า


ประวัติการแก้ไข
2016-03-31 07:45:49
Date : 2016-03-31 07:22:49 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อีกปัญหาของ MySQL กะ trigger คับ CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT);
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่