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

Zmieniasz nazwę tabeli InnoDB bez aktualizowania do niej odniesień do kluczy obcych?

Stare pytania, ale możliwe jest ich obejście. Zasadniczo przenieś dane, zamiast zmieniać nazwy tabel. Musisz oczywiście upewnić się, że nowe dane są zgodne z zasadami klucza obcego.

SET foreign_key_checks = 0;
CREATE TABLE IF NOT EXISTS foo_old LIKE foo;
INSERT INTO foo_old SELECT * FROM foo;
TRUNCATE foo;
INSERT INTO foo SELECT * FROM foo_new;

Upewnij się, że uruchamiasz to jako jedno zapytanie, aby zagraniczne_key_checks odnosiło się do całości. Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić uprawnienia tylko do odczytu, aby ustawić nową wartość zmiennej systemowej serwera MySQL?

  2. Jak zwrócić NULL, gdy wynik jest pusty?

  3. Łączenie się z bazą danych MySQL online za pomocą VB.Net

  4. Wyszukiwanie JSON w laravel eloquent

  5. Zapisywanie danych o stanie bota w mySQL za pomocą .NET