Elke (tekenreekstype) kolom heeft zijn eigen tekenset en sortering metadata.
Als, wanneer de kolom 's gegevenstype is opgegeven (d.w.z. toen het voor het laatst werd gemaakt of gewijzigd), werd er geen expliciete tekenset/sortering opgegeven, dan zouden de standaardtekenset en sortering van de tabel worden gebruikt voor de kolom.
Als, wanneer de tafel is opgegeven, is er geen standaard tekenset/sortering expliciet opgegeven, dan zouden de standaard tekenset en sortering van de database worden gebruikt voor de standaard van de tabel.
De commando's die u in uw vraag citeert, veranderen alleen dergelijke standaardtekensets/sorteringen voor respectievelijk de database en de tabel. Met andere woorden, ze zijn alleen van invloed op tabellen en kolommen die daarna zijn gemaakt - ze zullen niet invloed hebben op bestaande kolommen (of gegevens).
Om bestaande gegevens bij te werken, moet u eerst de De tekenset wijzigen
sectie van de handleiding op ALTER TABLE
:
Alleen de standaard wijzigen tekenset voor een tabel, gebruik deze instructie:
ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name;
Het woord DEFAULT
is optioneel. De standaardtekenset is de tekenset die wordt gebruikt als u de tekenset niet opgeeft voor kolommen die u later aan een tabel toevoegt (bijvoorbeeld met ALTER TABLE ... ADD column
).
Wanneer de foreign_key_checks
systeemvariabele is ingeschakeld, wat de standaardinstelling is, is tekensetconversie niet toegestaan in tabellen die een tekenreekskolom bevatten die wordt gebruikt in een externe sleutelbeperking. De oplossing is om foreign_key_checks
uit te schakelen
voordat u de tekensetconversie uitvoert. U moet de conversie uitvoeren op beide tabellen die betrokken zijn bij de externe sleutelbeperking voordat u foreign_key_checks
. Als u foreign_key_checks
opnieuw inschakelt
na het converteren van slechts één van de tabellen, een ON DELETE CASCADE
of ON UPDATE CASCADE
bewerking kan gegevens in de referentietabel beschadigen als gevolg van impliciete conversie die optreedt tijdens deze bewerkingen (bug #45290, bug #74816).