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

Tại sao MySQL Workbench nói với tôi rằng tôi cần dấu chấm phẩy?

Tôi nghĩ vấn đề là:bạn không sử dụng DELIMITER .

Vì vậy, chỉ cần đặt nó theo cách này:

DELIMITER //
create procedure AddColumnUnlessExists(
    IN dbName tinytext,
    IN tableName tinytext,
    IN fieldName tinytext,
    IN fieldDef text)
begin
    IF NOT EXISTS (
        SELECT * FROM information_schema.COLUMNS
        WHERE column_name=fieldName
        and table_name=tableName
        and table_schema=dbName
        )
    THEN
        set @ddl = CONCAT('ALTER TABLE ', dbName, '.', tableName, ' ADD COLUMN ', fieldName, ' ', fieldDef);
        prepare stmt from @ddl;
        execute stmt;
    END IF;
end //
DELIMITER ;

CHỈNH SỬA https://dev.mysql.com/doc /refman/5.7/en/stored-programs-defining.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql:nhóm theo ID, nhận ưu tiên cao nhất cho mỗi ID

  2. Trường tính toán-toán học CakePHP?

  3. Gán tổng của cột cho một ngày trong cột khác nếu tiêu chí được đáp ứng

  4. Khi nào thì thêm chỉ mục nào vào bảng trong Rails

  5. Vấn đề để chọn đúng hàng từ bảng thứ hai