Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa MySQL Workbench memberi tahu saya bahwa saya memerlukan titik koma?

Saya pikir masalahnya adalah:Anda tidak menggunakan DELIMITER .

Jadi begini saja:

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 ;

EDIT 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. Apa DBMS terbaik untuk pekerjaan itu?

  2. Bagaimana cara menghubungkan satu tabel ke banyak tabel yang berbeda?

  3. Apa itu MySQL Workbench?

  4. Ganti nama tabel MySQL menggunakan pernyataan SQL

  5. bertahan Java LocalDate di MySQL