Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dodaj kolumnę MySQL, jeśli nie istnieje

Jeśli twój host nie daje ci uprawnień do tworzenia lub uruchamiania procedur, myślę, że znalazłem inny sposób, aby to zrobić, używając PREPARE/EXECUTE i odpytując schemat:

SET @s = (SELECT IF(
    (SELECT COUNT(*)
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE table_name = 'table_name'
        AND table_schema = DATABASE()
        AND column_name = 'col_name'
    ) > 0,
    "SELECT 1",
    "ALTER TABLE table_name ADD col_name VARCHAR(100)"
));

PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mysqli_real_escape_string wystarczy, aby uniknąć wstrzyknięcia SQL lub innych ataków SQL?

  2. Wykorzystanie wyliczenia MyBatis

  3. Funkcja MySQL SELECT do sumowania aktualnych danych

  4. Jak zmienić nazwę bazy danych MySQL

  5. Błąd PDO:SQLSTATE[HY000]:Błąd ogólny:2031