// Developer Guide
MariaDB Developer Guide
คู่มือสำหรับ Developer ที่ใช้ MariaDB — SQL patterns, Stored Procedures, Triggers และ Events
// Essential SQL
MySQL CLI & Essential Commands
-- Connect to MariaDB
mysql -u root -p -h localhost mydb
-- Show databases / tables
SHOW DATABASES;
SHOW TABLES;
DESCRIBE orders;
SHOW CREATE TABLE orders\G
-- Common DDL
CREATE TABLE products (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
sku VARCHAR(50) UNIQUE NOT NULL,
name VARCHAR(255) NOT NULL,
price DECIMAL(10,2) DEFAULT 0.00,
attrs JSON,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
// Stored Procedures
Stored Procedures
-- Stored Procedure ตัวอย่าง
DELIMITER $$
CREATE PROCEDURE GetCustomerOrders(
IN p_customer_id INT,
IN p_status VARCHAR(20)
)
BEGIN
SELECT o.id, o.total, o.created_at
FROM orders o
WHERE o.customer_id = p_customer_id
AND o.status = p_status
ORDER BY o.created_at DESC;
END$$
DELIMITER ;
-- เรียกใช้
CALL GetCustomerOrders(123, "paid");
// Events (Scheduler)
Event Scheduler
-- เปิด Event Scheduler
SET GLOBAL event_scheduler = ON;
-- สร้าง recurring event
CREATE EVENT clean_old_logs
ON SCHEDULE EVERY 1 DAY
STARTS "2024-01-01 02:00:00"
DO
DELETE FROM audit_logs
WHERE created_at < DATE_SUB(NOW(), INTERVAL 90 DAY);