Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एकाधिक डेटा तालिकाओं पर अद्वितीय एआई आईडी उत्पन्न करें

मैं आपकी चिंताओं को समझता हूं। एक बार जब आप अपने डेटाबेस को तकनीकी आईडी के साथ डिजाइन करने का निर्णय लेते हैं, तो आईडी को भ्रमित करने का खतरा हमेशा बना रहता है। जबकि

insert into album_track (album, artist, track, no) 
  values ('B0016991-00', 'JBIEBER', 'BOYFRIEND0001', 2);

के बजाय

insert into album_track (album, artist, track, no) 
  values ('B0016991-00', 'BOYFRIEND0001', 'JBIEBER', 2);

शायद एक त्रुटि के माध्यम से होगा,

insert into album_track (album_id, artist_id, track_id, no) values (40, 22, 12, 2);

के बजाय

insert into album_track (album_id, artist_id, track_id, no) values (40, 12, 22, 2);

शायद नहीं होगा, और जब आप अपने प्रोग्राम त्रुटि को नोटिस करते हैं, तो अच्छे से खराब रिकॉर्ड बताने में बहुत देर हो सकती है। आपका डेटा तकनीकी रूप से सुसंगत होगा, लेकिन वास्तव में एक गड़बड़ है।

इस समस्या को दूर करने के लिए, आपको अपनी आईडी खींचने के लिए एक स्रोत की आवश्यकता है। उदाहरण के लिए ओरेकल में आप अनुक्रम का उपयोग करेंगे। MySQL में आप इसी उद्देश्य के लिए एक आईडी टेबल बना सकते हैं:

create table ids(id int auto_increment primary key);
create table album(id int primary key, album_no text, album_name text,
  foreign key (id) references ids(id));
create table track(id int primary key, track_name text, record_date date, take int, 
  foreign key (id) references ids(id));
insert into ids values ();
insert into album (id, album_no, album_name) values
  ((select last_insert_id), 'B0016991-00', 'Justin Bieber – Believe - Deluxe Edition');

इसलिए जब भी आप अपनी किसी तालिका में कोई रिकॉर्ड सम्मिलित करते हैं, तो आपको एक आईडी निर्दिष्ट करनी होगी (क्योंकि यह स्वचालित रूप से प्राप्त नहीं होती है)। आपको अपनी आईडी तालिका में डालने के साथ आईडी मिलती है और फिर MySQL के LAST_INSERT_ID() पर कॉल करें।

एक कम सुरक्षित, लेकिन आसान विकल्प यह होगा कि अलग-अलग ऑफ़सेट पर आईडी शुरू करें:

create table album(id int auto_increment primary key, album_no text, album_name text);
create table track(id int auto_increment primary key, track_name text, record_date date);
alter table track auto_increment=10000001;
create table artist(id int auto_increment primary key, artist_name varchar(100));
alter table artist auto_increment=20000001;
insert into artist (artist_name) values ('Justin Bieber');

यह तब तक काम करता है जब तक आपकी आईडी वांछित सीमा में रहती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP में दो अक्षांश और देशांतर के बीच ड्राइविंग दूरी की गणना कैसे करें

  2. mysql . के साथ उल्का

  3. mariadb Regexp कभी-कभी संग्रहीत प्रक्रिया में खाली हो जाता है

  4. बड़ी संख्या में पंक्तियों के लिए MySQLdb त्रुटि के लिए निष्पादनकर्ता

  5. एकाधिक पंक्ति दिनांक अंतर का योग Mysql