Jul 13 2009

MySQL Datensatz kopieren HowTo

In MySQL kann man Datensätze von einer Tabelle in eine andere kopieren. Dazu ist folgende Syntax vorgesehen:

INSERT INTO
  `tabelle_ziel`
  (`spalte_ziel_1`,`spalte_ziel_2`,`spalte_ziel_n`)
SELECT
  `spalte_1`,`spalte_2`,`spalte_n`
FROM
  `tabelle`;

Um eine komplette Daten-Kopie einer Tabelle zu erzeugen (gleiche Tabellenstruktur) kann der folgende SQL-Befehl verwendet werden:

INSERT INTO
  `tabelle_ziel`
SELECT
  *
FROM
  `tabelle`;

Jul 9 2009

MySQL Autoincrement zurücksetzen

Um den Autoincrement-Wert in einer MySQL Tabelle zurückzusetzen, wird folgender SQL-Befehl verwendent:

ALTER TABLE
  tblBelege
AUTO_INCREMENT = 1;

Jun 16 2009

Ver- und Entschlüsselung von Datenwerten unter MySQL

Um Datenwerte mittels AES-Verschlüsselung (Advanced Encryption Standard) in eine MySQL-Datenbank zu schreiben, kann die Funktion AES_ENCRYPT verwendet werden. Die Verschlüsselung ist standardmäßig auf eine 128-bit Schlüssellänge eingestellt. (Es besteht die Möglichkeit, die Schlüssellänge im Quelltext auf 256 Bit hochzusetzen)

Beispiel:

1
2
3
4
5
6
7
CREATE TABLE `crypt` (
  `EMAIL` varbinary(255) NOT NULL
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
INSERT INTO `crypt` VALUES (AES_ENCRYPT('mail@example.com', 'password'));
 
SELECT AES_DECRYPT(`EMAIL`, 'password') FROM `crypt`;