Re: SQL μετακίνηση εγγραφών

George Zarogiannis zarogiannis at gmail.com
Mon Jan 19 15:34:46 EET 2009


Δεν κατέχω σε MySQL, αλλά σε άλλες βάσεις παίζει ως εξής:

INSERT INTO B (A_ID, B1, B2, B3, B4)
SELECT A_ID, A1, A2, A3, 'φούφουτος' AS B4 FROM A WHERE A_ID = 666

2009/1/19 Theodore Lytras <thlytras at gmail.com>

> Έχω μια ερώτηση για όποιον ξέρει καλή MySQL...
>
> Έστω έχω έναν πίνακα Α με πεδία Α_ID, Α1, Α2, Α3 (δεν έχει σημασία τι
> τύπου).
> Και έστω πίνακας B με πεδία B_ID, B1, B2, B3 (ίδιου τύπου, αντίστοιχα).
>
> Αν θέλω να μετακινήσω την εγγραφή του A με A_ID = 666 στον πίνακα B,
> θα δώσω την εντολή:
> INSERT INTO B SELECT * FROM A WHERE A_ID = 666 ;
>
> Αν ο πίνακάς Β είχε δομή B_ID, A_ID, B1, B2, B3 (δηλαδή θέλω ξεχωριστό
> κλειδί για τον πίνακα B, και να κρατώ και το κλειδί από τον πίνακα Α),
> η εντολή θα γινόταν:
>
> INSERT INTO B (A_ID, B1, B2, B3) SELECT A_ID, A1, A2, A3 FROM A WHERE
> A_ID = 666 ;
>
> και το B_ID θα έπαιρνε αυτόματα τιμή χάρη στο AUTO_INCREMENT που θα
> του έχω βεβαίως βάλει.
>
> Η ερώτηση τώρα είναι η εξής:
>
> Έστω ο πίνακας Β είχε και ένα παραπάνω πεδίο Β4, στο οποίο εγώ θέλω να
> βάλω με το χέρι μια δικιά μου τιμή, ενώ στα υπόλοιπα (Β1 ως Β3) να
> μπούν οι τιμές από την εγγραφή του πίνακα Α όπως προηγουμένως. Πως
> πρέπει να γραφτεί τότε το query???????? (για να μη μου βγάλει οτι
> column counts don't match... :( )
>
> π.χ. το ακόλουθο ΔΕ δουλεύει: INSERT INTO B (A_ID, B1, B2, B3, B4)
> SELECT A_ID, A1, A2, A3 FROM A WHERE A_ID = 666 VALUES ("φούφουτος");
> (θέλω το "φούφουτος" να μπεί στη στήλη B4)
>
> Έχω φάει τον googl-η και δεν έχω βρει ακόμη κάπου να περιγράφεται αυτή
> η περίπτωση...
>
> Ευχαριστώ,
>
> Θοδωρής
>
> --
> linux-greek-users mailing list -- http://lists.hellug.gr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hellug.gr/pipermail/linux-greek-users/attachments/20090119/913a6fc4/attachment.htm>


More information about the Linux-greek-users mailing list