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

Bagaimana mengubah nilai default kolom menggunakan prosedur

Anda perlu menggunakan SQL Dinamis di sini, sebagai Default klausa dalam Alter Table tidak akan dapat menyelesaikan nilai variabel:

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. Ekstensi mysql tidak digunakan lagi dan akan dihapus di masa mendatang:gunakan mysqli atau PDO sebagai gantinya

  2. Grup Mysql DateTime dengan 15 menit

  3. Pymysql Cursor.fetchall() / Fetchone() Mengembalikan Tidak Ada

  4. Bagaimana memulihkan database Mysql dari file cadangan

  5. Kapan menambahkan indeks apa dalam tabel di Rails