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

Как да промените стойността по подразбиране на колона с помощта на процедура

Трябва да използвате Dynamic SQL тук, като Default клауза в Alter Table няма да може да разреши стойността на променливата:

DELIMITER $$
CREATE PROCEDURE updateDefaultUserRole(
    IN rid_in INT
) BEGIN

    -- generate the query string for Alter Table
    SET @alter_query_str = CONCAT('ALTER TABLE _users
                                   MODIFY rid INT(255) NOT NULL 
                                   DEFAULT ', 
                                  rid_in); -- Modify the columns default value
    -- prepare the query
    PREPARE stmt FROM @alter_query_str;
    -- execute the query
    EXECUTE stmt;
    -- deallocate the query
    DEALLOCATE PREPARE stmt;

    UPDATE _users SET rid = rid_in 
    WHERE rid < rid_in; -- Update all entries lower than the role ID.

END $$
DELIMITER ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gettext или превод на база данни

  2. Какъв е най-добрият начин за вмъкване и актуализиране на таблица с един ред в MySQL?

  3. Как да избягам % в заявка, използвайки execute() на sqlalchemy на python и pymysql?

  4. създаване на връзка в eclipse - ClassNotFoundException:com.mysql.jdbc.Driver

  5. как да използвам функцията mysql now() в cakephp за полета за дата?