Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. ซ่อมแซมตาราง MySQL จาก Command Line (REPAIR TABLE - MyISAM Only)

    REPAIR TABLE ทำงานได้เฉพาะ MyISAM Engine เท่านั้น InnoDB ไม่รองรับ (มี Crash Recovery เอง) ขั้นตอน 1. สร้างตาราง MyISAM CREATE TABLE RepairTableDemo ( id INT, name VARCHAR(100) ) ENGINE = MyISAM; 2. Insert ข้อมูล INSERT INTO RepairTableDemo VALUES (1, John), (2, Carol), (3, Johnson); 3.

  2. กู้คืนสิทธิ์ Root User ใน MySQL (Full Privileges)

    เมื่อ Root User หายสิทธิ์ (มักจาก REVOKE ผิด หรือ Upgrade Version) ให้ทำตามขั้นตอน Skip Grant Tables ขั้นตอนการกู้คืนสิทธิ์ Root 1. หยุด MySQL Service # Linux sudo systemctl stop mysqld # Windows (Admin) net stop mysql80 2. Start MySQL ด้วย --skip-grant-tables # Linux (Background) sudo mysqld_sa

  3. MySQL รองรับ Function-based Index แล้ว (Prefix Index / Generated Column)

    MySQL ไม่รองรับ Function-based Index แบบ Oracle/PostgreSQL (Index บน Expression) โดยตรง แต่มีทางเลือก 2 แบบ วิธีที่ 1: Prefix Index (Index บนส่วนต้นของ String) - รองรับทุก Version CREATE TABLE FunctionIndexDemo ( FirstName VARCHAR(100) ); -- Index 6 ตัวอักษรแรก CREATE INDEX indFirstName ON Fun

  4. เปิด Slow Query Log ใน MySQL โดยไม่ต้อง Restart

    ใช้ SET GLOBAL เพื่อเปิด Slow Query Log แบบ Dynamic (No Restart Required) Enable Slow Query Log SET GLOBAL slow_query_log = ON; ตั้งค่า Threshold (เกินกี่วินาทีถือว่า Slow) SET GLOBAL long_query_time = 2; -- 2 วินาที (Default: 10s) -- รองรับ Microsecond (MySQL 5.1.21+) SET GLOBAL long_query_time

  5. สร้างตาราง MySQL ด้วย MyISAM Engine

    ใช้ ENGINE = MyISAM ตอน CREATE TABLE เพื่อระบุ Storage Engine Syntax CREATE TABLE table_name ( col1 datatype, col2 datatype, ... ) ENGINE = MyISAM; ตัวอย่าง CREATE TABLE StudentRecordWithMyISAM ( Id INT, StudentName VARCHAR(100), StudentAge INT ) ENGINE = MyISAM; ตรวจสอบ E

  6. แปลง MyISAM เป็น InnoDB Storage Engine ใน MySQL

    ใช้ ALTER TABLE ... ENGINE = InnoDB เพื่อแปลง Storage Engine จาก MyISAM เป็น InnoDB ขั้นตอน 1. สร้างตาราง MyISAM (ตัวอย่าง) CREATE TABLE MyISAMToInnoDBDemo ( id INT, Name VARCHAR(100) ) ENGINE = MyISAM; 2. ตรวจสอบ Engine ปัจจุบัน SELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES

  7. Debug Lock Wait Timeout Exceeded ใน MySQL ด้วย SHOW ENGINE INNODB STATUS

    Lock Wait Timeout Exceeded เกิดเมื่อ Transaction รอ Lock นานเกิน innodb_lock_wait_timeout (Default: 50 วินาที) การ Debug: SHOW ENGINE INNODB STATUS SHOW ENGINE INNODB STATUS\G Output Sections ที่สำคัญ 1. TRANSACTIONS - ดู Transaction ที่ Block/Others = 12346 TABLE LOCK table `business`.`accounts`

  8. MySQL Trigger: Insert Row เข้าอีกตารางเมื่อมีการ Insert (Audit Log Pattern)

    ใช้ AFTER INSERT TRIGGER เพื่อ Insert ข้อมูลเข้าตารางอื่นอัตโนมัติเมื่อมีการ Insert (เหมาะสำหรับ Audit Log, Replication, Denormalization) ตัวอย่าง: Sync Table1 → Table2 1. สร้างตาราง CREATE TABLE Table1 ( id INT PRIMARY KEY, name VARCHAR(100) ); CREATE TABLE Table2 ( id INT PRIMARY KE

  9. MySQL รองรับ Millisecond/Microsecond Precision แล้ว (DATETIME(6), TIMESTAMP(6))

    MySQL ตั้งแต่ Version 5.6.4+ รองรับ Fractional Seconds Precision (fsp) สำหรับ TIME, DATETIME, TIMESTAMP ได้ถึง Microsecond (6 digits) Syntax TIME(fsp) DATETIME(fsp) TIMESTAMP(fsp) -- fsp = 0 ถึง 6 (Default = 0 = ไม่มี Fractional Seconds) ตัวอย่าง -- ตรวจสอบ Version SELECT VERSION(); -- 8.0.12 (รอง

  10. คัดลอกตารางจาก Database หนึ่งไปอีก Database ใน MySQL

    ใช้ INSERT INTO ... SELECT ระหว่าง Database โดยระบุ database.table ให้ชัดเจน Syntax INSERT INTO destination_db.table_name SELECT * FROM source_db.table_name; ตัวอย่างเต็ม 1. สร้างตารางใน Database business (Source) USE business; CREATE TABLE OriginalTable (id INT); INSERT INTO OriginalTable VALUE

  11. Insert วันที่/เวลาปัจจุบันใน MySQL ด้วย NOW()

    ใช้ฟังก์ชัน NOW() หรือ CURRENT_TIMESTAMP เพื่อ Insert วันที่และเวลาปัจจุบันลงตาราง Syntax INSERT INTO table_name (datetime_column) VALUES (NOW()); -- หรือ INSERT INTO table_name (datetime_column) VALUES (CURRENT_TIMESTAMP); ตัวอย่าง CREATE TABLE CurrentDateTime ( CurrentTime DATETIME ); INSER

  12. เพิ่ม NOT NULL Constraint ให้คอลัมน์ที่มีอยู่แล้วใน MySQL

    ใช้ ALTER TABLE ... MODIFY COLUMN เพื่อเพิ่ม NOT NULL Constraint ให้คอลัมน์ที่มีอยู่แล้ว Syntax ALTER TABLE table_name MODIFY COLUMN column_name data_type NOT NULL; ตัวอย่าง CREATE TABLE AddNotNUlldemo ( name VARCHAR(100) ); INSERT INTO AddNotNUlldemo VALUES (John), (Bob); -- เพิ่ม NOT NULL

  13. ทำให้คอลัมน์มีค่า Unique ใน MySQL (UNIQUE Constraint)

    UNIQUE Constraint รับประกันว่าไม่มีค่าซ้ำในคอลัมน์ (หรือชุดคอลัมน์) ยกเว้น NULL (อนุญาต Multiple NULLs) สร้างตารางพร้อม UNIQUE Constraint Column Level CREATE TABLE UniqueConstDemo ( name VARCHAR(100) UNIQUE ); Table Level (แนะนำ - ตั้งชื่อ Constraint ได้) CREATE TABLE UniqueConstDemo ( na

  14. ใช้ DISTINCT และ COUNT ร่วมกันใน MySQL Query

    สามารถรวม DISTINCT เข้าไปใน COUNT() เพื่อนับค่า Unique ในคอลัมน์ได้ Syntax COUNT(DISTINCT column_name) COUNT(DISTINCT col1, col2, ...) -- นับ Unique Combination ตัวอย่าง CREATE TABLE DistCountDemo ( id INT, name VARCHAR(100), age INT ); INSERT INTO DistCountDemo VALUES (1, John, 23)

  15. ลบ Whitespace นำหน้าและท้ายใน MySQL ด้วย TRIM()

    ใช้ฟังก์ชัน TRIM() เพื่อลบ Whitespace (Space, Tab, Newline) นำหน้า (Leading) และท้าย (Trailing) ของ String Syntax TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) -- Default: BOTH (ทั้งหน้าและหลัง), remstr = (Space) ตัวอย่างพื้นฐาน SELECT TRIM( Leading And Trailing spaces ); -- ผลลัพธ์:

  16. แปลง MySQL DATETIME เป็น Unix Timestamp

    ใช้ฟังก์ชัน UNIX_TIMESTAMP() และ STR_TO_DATE() ร่วมกันเพื่อแปลง DateTime String เป็น Unix Timestamp Basic Conversion Unix Timestamp SELECT UNIX_TIMESTAMP(STR_TO_DATE(Oct 19 2018 10:00PM, %M %d %Y %h:%i%p)); -- ผลลัพธ์: 1539966600 Format Specifiers ใน STR_TO_DATE Specifierความหมายตัวอย่าง %MMonth

  17. KEY Keyword ใน MySQL หมายถึงอะไร (Synonym ของ INDEX)

    ใน MySQL KEY เป็น Synonym (คำ 동의어) ของ INDEX ทั้งคู่หมายถึง Index เหมือนกัน จาก Documentation KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY can also be specified as just KEY when given in a column definition. This was implemented for compatibility with other database systems.

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:171/229  20-คอมพิวเตอร์/Page Goto:1 165 166 167 168 169 170 171 172 173 174 175 176 177