Jump to content

αντιγραφή στην MySQL


tempo
 Κοινοποίηση

Recommended Posts

καλησπέρα,

 

μάλλον το πρόβλημα είναι απλό άλλα αρχάριος στην mySQL είπα να ρωτήσω την παρέα.

 

Λοιπόν έχω 2 βάσεις και θέλω χρησιμοποιώντας το περιβάλλον του phpMyAdmin να μεταφέρω τα στοιχεία απο την μία βάση στην άλλη άλλα για συγκεκριμένο πίνακα και πεδίο.

 

Δηλαδή θέλω τα στοιχεία της

 

ΒΑΣΗ_1...ΠΙΝΑΚΑΣ_1...ΠΕΔΙΟ_1

 

να αντιγραφούν στην

 

ΒΑΣΗ_2...ΠΙΝΑΚΑΣ_2...ΠΕΔΙΟ_2

 

Τα έβαλα έτσι για να βοηθήσω κάποιον που θα μου γράψει τη σύνταξη SQL που χρειάζεται

 

 

Ευχαριστώ

η παιδεία απλά... https://www.ipedia.gr

Link to comment
Share on other sites

INSERT INTO ΒΑΣΗ2.ΠΙΝΑΚΑΣ2 (ΠΕΔΙΟ2) SELECT ΠΕΔΙΟ1 FROM ΒΑΣΗ1.ΠΙΝΑΚΑΣ1 WHERE 1=1

 

Αυτό θα πρέπει να σου δουλέψει. Πάντως το phpMyAdmin στις "Λειτουργίες" δίνει και από μόνο του τη δυνατότητα αντιγραφής/μεταφοράς ενός πίνακα, με ή χωρίς τις εγγραφές του, από τη μία βάση στην άλλη.

this signature is under heavy construction
Link to comment
Share on other sites

ευχαριστώ πολύ για την βοήθεια,

το δοκίμασα και φαίνεται να δουλεύει άλλα μάλλον υπάρχει και ένα άλλο πρόβλημα.

 

Θέλω να μεταφέρω πολλά πεδία απο τον έναν πίνακα στον άλλον.

Έστω μεταφέρω το ΠΕΔΙΟ_1 (έστω "όνομα") που έχει 100 εγγραφές, ολα ΟΚ

όταν μεταφέρω μετά το ΠΕΔΙΟ_2 (έστω "επίθετο") που έχει και αυτό 100 εγγραφές στον καινούργιο πίνακα συμβαίνει το εξής: στις 100 πρώτες εγγραφές υπάρχουν κανονικά τα δεδομένα του ΠΕΔΙΟΥ_1 και στις υπόλοιπες 100 του ΠΕΔΙΟΥ_2. Δηλαδή συνολικά 200 εγγραφές οι 100 έχουν μόνο "όνομα" και οι άλλες 100 μόνο "επίθετο".

 

Καμία λύση???

η παιδεία απλά... https://www.ipedia.gr

Link to comment
Share on other sites

Από την ερώτησή σου, νόμιζα ότι ήθελες να αντιγράψεις μόνο ένα πεδίο. Για να αντιγράψεις πολλά πεδία, το query είναι το εξής:

 

INSERT INTO ΒΑΣΗ2.ΠΙΝΑΚΑΣ2 (όνομα, επίθετο, στοιχείο2, στοιχείο3) SELECT όνομα, επίθετο, στοιχείο2, στοιχείο3 FROM ΒΑΣΗ1.ΠΙΝΑΚΑΣ1 WHERE 1=1

 

Δηλαδή και στο INSERT και στο SELECT πρέπει να διαχωρίσεις τα πεδία μεταξύ τους με κόμμα, ο αριθμός των πεδίων να είναι ίδιος και με την ίδια σειρά.

this signature is under heavy construction
Link to comment
Share on other sites

η σειρά των πεδίων στους 2 πίνακες που έχω δεν είναι ίδια.

πχ στον πρώτο πίνακα είναι όνομα,επίθετο,τηλέφωνο,διεύθυνση ενώ στον άλλον όνομα,τηλέφωνο,επίθετο,διεύθυνση

 

τι κάνουμε σε αυτήν την περίπτωση?

μήπως μπορώ να βάλω άλλη σειρά στη σύνταξη της εντολής ή να αλλάξω τη σειρά των πεδίων στους πίνακες? Αυτό το δεύτερο δεν ξέρω πως να το κάνω και που να το βρώ

ευχαριστώ πάντως για την βοήθεια σου

η παιδεία απλά... https://www.ipedia.gr

Link to comment
Share on other sites

η σειρά των πεδίων στους 2 πίνακες που έχω δεν είναι ίδια.

πχ στον πρώτο πίνακα είναι όνομα,επίθετο,τηλέφωνο,διεύθυνση ενώ στον άλλον όνομα,τηλέφωνο,επίθετο,διεύθυνση

 

 

Δεν πειράζει και δεν χρειάζεται να αλλάξεις τη δομή του πίνακα. Στην περίπτωση αυτή δεν παίζει ρόλο η σειρά με την οποία έχουν δημιουργηθεί τα πεδία μέσα στον πίνακα., αλλά η σειρά με την οποία θα κληθούν στο SQL query.

 

Δηλαδη, πρέπει το query να το διατυπώσεις έτσι, ώστε τόσο στο INSERT, όσο και στο SELECT η σειρά των πεδίων να είναι ακριβώς η ίδια (άσχετα αν στη δομή του πίνακα η πραγματική σειρά τους είναι διαφορετική). Έτσι, το πεδίο "όνομα" από τον πίνακα1 θα αντιστοιχιστεί με το πεδίο "όνομα" από τον πίνακα2 κ.ο.κ. Συνεπώς, το query που σου έχω δώσει στο προηγούμενο post, ισχύει κανονικά. :)

this signature is under heavy construction
Link to comment
Share on other sites

και κάτι άλλο τώρα που αρχίσαμε να μαθαίνουμε.....

 

μπορώ να αλλάξω τη σειρά των πεδίων σε έναν πίνακα?

 

...για τον τρόπο που είπες θα τον δοκιμάσω τώρα και θα σου πω αν τα κατάφερα τελικά.....!!!!!!

 

NAI λειτούργησε άψογα.

 

και κάτι άλλο τώρα που αρχίσαμε να μαθαίνουμε.....

 

1. μπορώ να αλλάξω τη σειρά των πεδίων σε έναν πίνακα?

 

2. μπορώ να μεταφέρω/αντιγράψω τα δεδομένα ενός πεδίου σε ένα άλλο πεδίο του ίδιου πίνακα?

η παιδεία απλά... https://www.ipedia.gr

Link to comment
Share on other sites

Αυτά και άλλα πολλά (δηλαδή να μάθεις τη χρήση της mySQL), θα βρεις στο url: http://dev.mysql.com/doc
Γράφουμε όσα ζούμε: www.pella24.gr
Link to comment
Share on other sites

1. μπορώ να αλλάξω τη σειρά των πεδίων σε έναν πίνακα?

 

2. μπορώ να μεταφέρω/αντιγράψω τα δεδομένα ενός πεδίου σε ένα άλλο πεδίο του ίδιου πίνακα?

 

1. Αυτό θα τροποποιήσει τον πίνακα1, ώστε το πεδίο όνομα να μεταφερθεί μετά το πεδίο επώνυμο

ALTER TABLE πίνακας1 CHANGE COLUMN όνομα όνομα TEXT NOT NULL AFTER επώνυμο

 

2. Ας πούμε ότι θέλεις να φτιάξεις ένα νέο πεδίο όνομα2 και να αντιγράψεις σ' αυτό τα περιεχόμενα του πεδίου όνομα:

 

Κατ' αρχήν προσθέτεις το πεδίο όνομα2 στον πίνακα:

ALTER TABLE πίνακας1 ADD όνομα2 TEXT NOT NULL

 

 

και μετά αντιγράφεις τα περιεχόμενα του πεδίου όνομα, με την εντολή:

UPDATE πίνακας1 SET όνομα2 = όνομα WHERE 1=1

 

Πάντως επειδή η MySQL έχει πολλές δυνατότητες και εντολές, που δεν μπορούν να αναλυθούν σε ένα topic, το link που σου έδωσε ο Varadero θα σου φανεί πολύ χρήσιμο. ;)

this signature is under heavy construction
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Επισκέπτης
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Κοινοποίηση

×
×
  • Create New...