Új tábla létehozása értékadással MySQL-ben
Sziasztok! hogy lehet azt megcsinálni, hogy amikor létrehozok egy új táblát, akkor ne kelljen külön csinálnom egy szkriptet, ami megadja a legelső értéket, hanem legyen rögtön egy alapértelmezett sor?
■
Tarolt eljarasok
create table as select
create table as select
használatával, persze akkor nem igazán tudod megadni az adattípusokat, vagy legalábbis nagyon trükkösnek kell lenni. Példa:Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from proba;
+------------+------------+----------+
| vezeteknev | keresztnev | szuletes |
+------------+------------+----------+
| Kovacs | Istvan | 1978 |
+------------+------------+----------+
1 row in set (0.00 sec)
mysql> explain proba;
+------------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-----------+------+-----+---------+-------+
| vezeteknev | char(6) | | | | |
| keresztnev | char(6) | | | | |
| szuletes | bigint(4) | | | 0 | |
+------------+-----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
Kétlem, hogy te ezt szeretnéd, bár ha egy létező adathalmazon megfogalmazható lekérdezés alapján szeretnéd létrehozni az új táblát, akkor szerencséd van, mert akkor átveszi a lekérdezés eredményében előálló típusokat az új táblához a MySQL.
Fent csak tippel a megadott adatok alapján. Ha a fenti példát kiterjesztve szeretnéd, hogy ne csak tippeljen, akkor a CAST függvények és operátorok közül tudsz válogatni, amik segítenek a megfelelő típusra kényszeríteni egy értéket, hogy tényleg olyan oszlopot vegyen fel a MySQL. De ezutóbbi tényleg nagyon barkács megoldás, semmiféle komoly alkalmazásban nincs helye szerintem.
Az jó ha csinálsz előre egy .sql fájlt?
Végül amikor kell a tábla akkor csak betolod pl parancssorból a fájlt.
re
A második válasz tetszett a legjobban, de a többiből is tanultam ;)