Archive for the ‘Database’ Category

รัน Update SQL ขึ้น Error ERROR 1093 (HY000): You can’t specify target table ” for update in FROM clause

เขียนคำสั่งใน MySQL แล้วขึ้น Error Error ERROR 1093 (HY000): You can’t specify target table ‘ชื่อ Table’ for update in FROM clause นั่นก็เป็นเพราะว่า MySQL ไม่ให้ update จาก Select โดยจาก Table ของตัวมันเอง เช่น update table_a set status = ’1′ where fid in (select fid from table_a where fname =’abc’) ถ้าเขียนแบบนี้จะขึ้น Error ทันทีเพราะว่า มันเรียก Update จาก Select Table ของตัวเอง [...]

วิธีเปลี่ยน Password root ของ Mysql

เป็นคำสั่งง่ายๆ ที่ลืมบ่อยๆ > mysqladmin -u root -p password ‘newpassword’ เท่านี้เอง เมื่อเปลี่ยแล้ว ก็ลอง Login ดูครับ

การใช้ Replace function ใน MySQL mysql search replace function

บางครั้งเราต้องการแทนคำต่างๆ ใน Table ของเราใน MySQL ก็สามารถทำได้ด้วย Function Replace ที่ Build in มาในตัว MySQL อยู่แล้ว โดยใช้คำสั่งดังนี้ update table_name set field_name = replace(field_name, ‘คำที่ค้นหา’,'คำที่ต้องการแทนที่’); แค่นี้ก็เรียบร้อยแล้วครับ

WordPress Convert Page to Post หรือ Post to Page

เนื่องจากบางครั้งมือใหม่ WP อาจจะ เดี๋ยว Page เดี๋ยว Post ปนกันไป ปนกันมา แต่เมื่อเข้าใจหลักการแล้วก็อยากแก้ให้มันถูกต้อง ไอ้ครั้นจะ copy ๆ paste ๆ ก็ดูจะลำบากไปสักนิด เลยขอนำเสนอ SQL Script ในการเปลี่ยน Post เป็น Page หรือ Page เป็น Post ต้องเข้าไปเขียน SQL Script เพื่อทำการ Update ค่า post_type ให้เป็น ดังที่เราต้องการ อันนี้ขอยกตัวอย่าง 2 อัน คือ page และ post โดย ให้ update ที่ ID ของ Post หรือ Page นั้นๆ โดยเอา mouse [...]

BigDump Save My Ass

หลังจากที่ย้าย Server ไป Hostmonster MSIT9 Webboard ก็ใช้งานไม่ได้เรื่อยมา เป็นระยะเวลาเกือบ 2-3 เดือน เนื่องจากติดปัญหาใหญ่ๆ เลยก็คือ File Database ที่ dump มาจาก mysqldump นั้น มีขนาดใหญ่โตถึง 450-500 Mb (เฉพาะ posts table ของ ipb นี่ก็ 400 แล้ว) เมื่อรวบ Log File แล้วยิ่งใหญ่โตเข้าไปอีก แค่คิดก็ท้อซะแล้ว แต่ด้วยมีความต้องการ webboard เก่าคืน ผมจึงพยายามหาทางทำมาเรื่อย อันดับแรกผมลบ ข้อมูลที่เป็น Spam Post ทิ้งทั้งหมด แล้วก็ไม่เอา Log อะไรเลย ไฟล์จึงเหลือ ขนาดสักประมาณ 10 Mb ได้ (โห..ลบไปเยอะนะเนี้ย) แต่แม้จะเหลือแค่ 10 [...]

ง่ายๆ กับ Command สำหรับ Backup และ Restore PostgreSQL

เพิ่งพยายามกลับมาใช้ Opensource Database แต่เนื่องจากมีความหลังเจ็บปวดกับ MySQL ในหลายๆเรื่อง (ที่ตัวเองไม่เก่ง) เลยขอลี้มาใช้งานสบายๆ กับ PGSQL ดีกว่า ที่เอามาฝากคราวนี้เป็นการ Backup กับ Restore Database แบบสะดวกๆ เหมือน sql_dump ของ MySQL วิธีการ Backup ด้วยคำสั่ง pg_dump ใน Folder bin ของ PostgreSQL C:\Program Files\PostgreSQL\8.3\bin>pg_dump -U postgres db_hcms > d:\abc\sqlfile.sql วิธีการ Restore ไฟล์ที่ Backup ด้วย pg_dump ด้วยคำสั่ง psql ใน Folder bin ของ PostgreSQL C:\Program Files\PostgreSQL\8.3\bin>psql -U postgres db_hcms [...]

แปลง Mysql Database ภาษาต่างดาวเป็น ภาษาไทย แบบปกติ

เมื่อก่อนตอนใช้ MySql แรกๆ ผมก็ติดตั้งแล้วก็ใช้งาน ลง Application แล้วก็ไม่ได้สนใจอะไรมาก แต่เมื่อถึงเวลาย้าย Server กลับต้องมามองว่า แล้ว Database ที่เราเก็บเนี้ย มันอ่านภาษาไทยไม่ได้เนี้ย ต้องทำยังไงกับมันดี ก็ได้ทดลอง และ พบวิธีแก้ปัญหา ดังที่เขียนด้านล่างครับ ขั้นตอนแรกต้องอ่าน Table มันออกมาเป็น Script SQL เสียก่อน ด้วยคำสั่ง Backup Mysql ชื่อ mysqldump ตัวอย่าง เข้าไปที่ Dos พิมพ์คำสั่ง cd \ เพื่อเข้าไปที่ Root ของ Drive C พิมพ์คำสั่ง mysqldump –default-character-set={ค่า charset} -u {Username} -p {ชื่อ database}> backup.sql ตัวอย่าง : mysqldump –default-character-set=latin1 [...]

date_add ใน MYSQL

หลังจากที่ร้างลาไม่ได้เข้ามายุ่มยามกับ MySQL เท่าไหร่ แต่มีเหตุอันต้องกลับมาใช้ แต่อยากจะทำการจัดการเกี่ยวกับวันที่ในระบบ เลยเก็บรวบรวม Function ที่จำเป็นต้องใช้เกี่ยวกับวันที่มารวบรวมไว้ ถ้าคุณต้องการ จัดรูปแบบวันที่ใน MySQL ละก็ต้องนี่ select date_format(’2008-02-01′, ‘%d-%m-%Y’) ผลจะออกมาเป็น 01-02-2008 ถ้าคุณต้องการเพิ่มวัน ต้องแบบนี้ SELECT ’2008-02-01′ + INTERVAL 6 day ผลจะออกมาเป็น 2008-02-07 ถ้ามีเพิ่มเติมในแต่ละขั้นตอนจะนำมาโพสเพิ่มเติมครับ

MSSQL Dateformat การจัดรูปแบบการแสดงผลวันที่ใน MSSQL

คราวที่แล้วเขียน SP สร้าง ตารางวันที่ แต่ไอ้ตอนที่แปลง Format มันแปลง ดุ้นๆ ไปไม่ค่อยเวิ๊ก อันนี้เป็นการจัด Format Datetime อย่างเป็นทางการ อันนี้เป็น format นี้ 05-04-2008 SELECT CONVERT(varchar(10), getdate()+1, 105) อันนี้เป็น format นี้ 05/04/2008 SELECT CONVERT(varchar(10), getdate()+1, 103) ปล. ที่ต้อง +1 ให้กับ getdate() ก็เพราะว่า มันเป็นวันที่ 4 เดือน 4 เดี๋ยวจะงง

การเอา Textfile เข้า Temptable ด้วย MSSQL

การเอา Textfile เข้า ฐานข้อมูล MSSQL จริงๆ ไม่ต้องใช้ Temptable ก็ได้ ถ้าใช้บ่อย สร้างเป็นถาวรก็น่าจะใช้งานได้ง่ายกว่า แต่สำหรับผมเองผมว่าเอาเข้า Temptable ไว้ก่อน แล้วค่อยเอามาใช้จริงๆ แต่สำหรับการเขียน Webที่ Connection เปิดหนึ่งครั้ง ปิดหนึ่งครั้ง Temptable ก็หายไปบางครั้งก็คงไม่เหมาะ ขั้นแรกก็สร้าง Temptable ซะก่อน ด้วยคำสั่ง Create table ธรรมดานี่แหละครับ เพียงแต่ใส่ # ไว้ข้างหน้าเพื่อบอกว่าเป็น Temptable CREATE TABLE #tempdata ( id varchar(4), usr VARCHAR(100), pwd VARCHAR(100) )