Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL - Đặt giá trị mặc định cho trường dưới dạng hàm nối chuỗi

MySQL không hỗ trợ các cột hoặc biểu thức được tính toán trong DEFAULT tùy chọn định nghĩa cột.

Bạn có thể thực hiện việc này trong một trình kích hoạt (yêu cầu MySQL 5.0 trở lên):

CREATE TRIGGER format_stage_name 
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
  SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END

Bạn cũng có thể muốn tạo một trình kích hoạt tương tự BEFORE UPDATE .

Coi chừng NULL trong họ và tên, bởi vì sự ghép nối của một NULL với bất kỳ chuỗi nào khác tạo ra NULL . Sử dụng COALESCE() trên mỗi cột hoặc trên chuỗi được nối nếu thích hợp.

chỉnh sửa: Ví dụ sau đặt stage_name chỉ khi nó NULL . Nếu không, bạn có thể chỉ định stage_name trong INSERT của bạn và nó sẽ được giữ nguyên.

CREATE TRIGGER format_stage_name 
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
  IF (NEW.stage_name IS NULL) THEN
    SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
  END IF;
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Doctrine2 với Symfony2 không nhận dạng ký tự db và đối chiếu

  2. MySQL JOIN / GROUP_CONCAT bảng thứ hai?

  3. Gửi email từ trình kích hoạt MySQL khi một bảng được cập nhật

  4. nodejs mysql Lỗi:Mất kết nối Máy chủ đã đóng kết nối

  5. Làm thế nào trong VB.net, chúng tôi có thể mã hóa chuỗi cho SQL