Προς το περιεχόμενο

MySQL id - Αuto Increment


Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω τον παρακάτω πίνακα και θέλω τα ID να έχουν αυτόματη 
αρίθμηση. Δουλεύει καλά όμως όταν διαγράψω κάποιον
πελάτη τότε το id του αποθηκεύεται , και έτσι όταν βάζω 

νέο Row  έχει id ένα >μεγαλύτερο από τον προηγούμενο..

 

Κάνω κάτι λάθος στον πίνακα ?

CREATE TABLE `customers` (
	`id` INT(3) NOT NULL AUTO_INCREMENT,
	`name` VARCHAR(35) NULL DEFAULT NULL,
	`lname` VARCHAR(35) NULL DEFAULT NULL,
	`address` VARCHAR(35) NULL DEFAULT NULL,
	`phone` VARCHAR(10) NULL DEFAULT NULL,
	`mail` VARCHAR(255) NULL DEFAULT NULL,
	PRIMARY KEY (`id`)
)
COLLATE='greek_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=4;
Δημοσ.

Όχι, έτσι δουλεύει το auto increment. Και αυτό δε θα πρέπει να έχει σημασία για σένα -- αν έχει, τότε ετοιμάζεσαι να το χρησιμοποιήσεις λάθος.

 

Το PK είναι για να ξεχωρίζεις εγγραφές μεταξύ τους, χωρίς να σημαίνει κάτι η τιμή του (σαν τον αριθμό ταυτότητας ας πούμε) -- τίποτα λιγότερο και τίποτα περισσότερο. Αν θέλεις κάποια στήλη με συγκεκριμένη σημασία (π.χ. από 1 ως Ν χωρίς κενά) θα πρέπει να το φροντίσεις μόνος σου.

  • Like 2
Δημοσ.

Ωραίος , ευχαριστώ αν έχω δύο πίνακες πχ έναν tbl_users και έναν tbl_banned πως μπορώ

να συσχετίσω τους χρήστες που είναι banned ? Πώς μπορώ να ελέγχξω ποιο χρήστες είναι

banned ? Πρέπει να φτιάξω και άλλον πίνακα που να συσχετίζει τα `id` των χρηστών με τα

`id` των banned ?

 

Ευχαριστώ

Δημοσ.

Ο πίνακας tbl_banned, θα κάνει τη συσχέτιση. στην ουσία ο πίνακας αυτός θα έχει δύο πεδία

1) Το id του το οποίο θα είναι auto_increment και

2) Το user_id, το οποίο θα είναι ξένο κλειδί στο id του πίνακα tbl_users.

 

Πάντως, αν απλά θέλεις να κρατάς ποιοι χρήστες είναι banned, μπορείς να βάλεις απλά ένα επιπλέον πεδίο στον πίνακα tbl_users, το οποίο θα παίρνει δύο τιμές, π.χ. 0 και 1. Η τιμή 0 θα είναι η default τιμή των χρηστών και θα σημαίνει ότι δεν είναι banned, ενώ όταν ο χρήστης γίνεται banned, η τιμή αυτή θα αλλάζει σε 1.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...