Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо MySQL Workbench ми казва, че имам нужда от точка и запетая?

Мисля, че проблемът е:не използвате DELIMITER .

Така че просто го кажете по този начин:

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 ;

РЕДАКТИРАНЕ 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

  2. Как да съхранявате уникален идентификатор за регистрация на GCM в MySQL

  3. Таблица [име на таблица] не е заключена

  4. MySQL променя типа на удостоверяване от стандартен на caching_sha2_password

  5. Какво се случва, ако MySQL връзките непрекъснато не се затварят на PHP страници?