τηρηση registration date

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

τηρηση registration date

Δημοσίευση από Apostolis_38 » 01 Νοέμ 2013 14:12

Serghio έγραψε:Και πως ο τρόπος που φαίνεται στο παραπάνω παράδειγμα λύνει το πρόβλημα να μην ξαναγράφω τα queries στην περίπτωση που προσθέσω στον πίνακα πεδίο(column);
Αυτό που θέλει να σου πει ο gvre είναι οτι αν εκτελείς ένα query με το οποίο κάνεις insert μόνο συγκεκριμένα values, επιλέγοντας τον τρόπο που σου υπέδειξε δεν θα χρειαστεί να τροποποιείς το query σου.
Για παράδειγμα, αν έχεις ένα table όπου βρέξει χιονίσει θα καταχωρείς μόνο το username και το password και τα υπόλοιπα πεδία είναι auto increment ή null, τότε αν προσθέσεις κάποιο νέο πεδίο το query δεν θα αλλάξει.
Αρκει και το νέο πεδίο να είναι auto increment ή null κ.λ.π.
Αν όμως προσθέσεις κάποιο πεδίο που δεν μπορεί να πάρει τιμή από την MySQL "αυτόματα", τότε πρέπει να τροποποιήσεις το query σου.

Εγώ βέβαια χρησιμοποιώ τον δικό σου τρόπο αλλά από την άλλη, σπάνια αφήνω την MySQL να "αποφασίσει" τι δεδομένα να καταχωρήσει. Ακόμα και για auto increment/null/time values.
Οπότε πάντα τροποποιώ τα query μου :)

Serghio
Δημοσιεύσεις: 452
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

τηρηση registration date

Δημοσίευση από Serghio » 01 Νοέμ 2013 17:19

Tώρα νομίζω πως το κατάλαβα...με τον τρόπο που υποδεικνύει ο gvre στοχεύεις ακριβώς τα columns που θες να γίνει το insert

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

τηρηση registration date

Δημοσίευση από gvre » 01 Νοέμ 2013 18:29

Είτε με τον ένα τρόπο είτε με τον άλλο, αν προσθέσεις πεδίο στον πίνακα θα χρειαστεί, εκτός από κάποιες συγκεκριμένες περιπτώσεις, να τροποποιήσεις τα queries σου. Η διαφορά είναι ότι αν αναφέρεις τα πεδία τότε σε περίπτωση προσθήκης κάποιου πεδίου στη βάση τα queries θα συνεχίσουν να λειτουργούν. Αν χρησιμοποιείς το INSERT INTO table VALUES, τότε θα λαμβάνεις το γνωστό μήνυμα λάθους "Column count doesn't match value count" μέχρι να τροποποιήσεις τα queries.

Serghio
Δημοσιεύσεις: 452
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

τηρηση registration date

Δημοσίευση από Serghio » 01 Νοέμ 2013 18:40

gvre έγραψε:Είτε με τον ένα τρόπο είτε με τον άλλο, αν προσθέσεις πεδίο στον πίνακα θα χρειαστεί, εκτός από κάποιες συγκεκριμένες περιπτώσεις, να τροποποιήσεις τα queries σου. Η διαφορά είναι ότι αν αναφέρεις τα πεδία τότε σε περίπτωση προσθήκης κάποιου πεδίου στη βάση τα queries θα συνεχίσουν να λειτουργούν. Αν χρησιμοποιείς το INSERT INTO table VALUES, τότε θα λαμβάνεις το γνωστό μήνυμα λάθους "Column count doesn't match value count" μέχρι να τροποποιήσεις τα queries.
Πάνω κάτω αυτο εννούσα και εγώ απλως η απάντηση σου είναι πληρέστερη και σαφέστερη.Το θέμα είναι ότι κατάλαβα αυτό που ήθελες να πεις.

Serghio
Δημοσιεύσεις: 452
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

τηρηση registration date

Δημοσίευση από Serghio » 02 Νοέμ 2013 21:13

θέλω να θίξω κάτι ακόμα.Το συγκεκρίμένο column, όπου είναι τύπου TIMESTAMP έχω προσθέση επίσης ON UPDATE CURRENT_TIMESTAMP.

Νομίζω όμως οτι αυτό είναι λάθος επιλογή γιατί αν π.χ ο χρήστης θελήσει να αλλάξει το όνομα του αυτόματα θα ανανεωθεί το TIMESTAMP κάτι που δεν θέλω εφόσον αυτό πρέπει να μπαίνει μόνο όταν ο χρήστης γράφεται και να μην αλλάζει για κανένα λόγο μετά από την στιγμή εγγραφής...

Τι λέτε?

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

τηρηση registration date

Δημοσίευση από gvre » 02 Νοέμ 2013 21:59

Εσύ τί πιστεύεις; Πρέπει το registration date να αλλάζει στο update ή όχι;

Serghio
Δημοσιεύσεις: 452
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

τηρηση registration date

Δημοσίευση από Serghio » 02 Νοέμ 2013 22:02

gvre έγραψε:Εσύ τί πιστεύεις; Πρέπει το registration date να αλλάζει στο update ή όχι;
Eννοείται πως οχι.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

τηρηση registration date

Δημοσίευση από gvre » 02 Νοέμ 2013 22:07

Αφού εννοείται, τότε δεν πρέπει να αλλάζει.

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες