मारियाडीबी स्क्रिप्ट एक्झिक्यूशनमध्ये एरर 1064 (42000) सोडवत आहे

मारियाडीबी स्क्रिप्ट एक्झिक्यूशनमध्ये एरर 1064 (42000) सोडवत आहे
मारियाडीबी स्क्रिप्ट एक्झिक्यूशनमध्ये एरर 1064 (42000) सोडवत आहे

XAMPP मधील MySQL सिंटॅक्स त्रुटी समजून घेणे: एक समस्यानिवारक मार्गदर्शक

SQL त्रुटी समोर येणे निराशाजनक असू शकते, विशेषत: जेव्हा ती ERROR 1064 (42000) सारखी गुप्त असते. 😓 ही विशिष्ट वाक्यरचना त्रुटी अनेकदा मध्ये दिसते MySQL किंवा मारियाडीबी स्क्रिप्ट चालवताना आणि त्याच्या ट्रॅकमध्ये डेटाबेस विकास थांबवू शकतो.

XAMPP सह MySQL किंवा MariaDB वातावरण चालवणाऱ्या प्रत्येकासाठी, जसे की या प्रकरणात, एक लहान वाक्यरचना चूक 1064 त्रुटी ट्रिगर करू शकते, सहसा तुमच्या SQL स्टेटमेंट स्ट्रक्चरमधील समस्या किंवा आवृत्ती जुळत नाही.

तुम्हाला फाइलमध्ये 9 ओळीवर "ERROR 1064 (42000)" सारखी एरर आली असेल, तर ही समस्या परदेशी की किंवा इतर की डेटाबेस स्ट्रक्चरचा संदर्भ देणाऱ्या ओळीत असू शकते. या मार्गदर्शकामध्ये, आम्ही हे का घडते आणि ते त्वरीत कसे सोडवायचे ते पाहू.

हा समस्यानिवारण प्रवास तुम्हाला तुमच्या SQL मधील वाक्यरचना त्रुटीचा स्रोत ओळखणे, MariaDB सह सुसंगतता तपासणे आणि वाक्यरचना निश्चित करणे याद्वारे चरण-दर-चरण घेऊन जातो जेणेकरून तुमची स्क्रिप्ट कोणत्याही अडथळ्याशिवाय चालू शकेल. चला उपाय शोधूया! 🚀

आज्ञा वापराचे उदाहरण आणि तपशीलवार वर्णन
CREATE DATABASE हा आदेश नवीन डेटाबेस सुरू करतो. या प्रकरणात, डेटाबेस तयार करा Ejercicio4_4A; इतर डेटाबेसेस प्रभावित न करता वर्तमान प्रकल्पाशी संबंधित सारण्यांचे पुढील संघटन करण्यास अनुमती देऊन विशिष्ट डेटाबेस सेट करण्यासाठी वापरला जातो.
USE Ejercicio4_4A वापरा; सक्रिय डेटाबेस संदर्भावर स्विच करते Ejercicio4_4A, पुढील प्रत्येक कमांडसाठी डेटाबेस नाव निर्दिष्ट करणे अनावश्यक बनवते.
AUTO_INCREMENT cod_editorial INT(3) PRIMARY KEY AUTO_INCREMENT सारख्या स्तंभांवरील ही विशेषता नवीन नोंदींसाठी आपोआप अद्वितीय मूल्ये निर्माण करते. एसक्यूएल टेबलमधील प्राथमिक कीजसाठी हे महत्त्वपूर्ण आहे जेथे अद्वितीय अभिज्ञापक आवश्यक आहेत.
PRIMARY KEY टेबलमधील प्रत्येक रेकॉर्डसाठी एक अद्वितीय अभिज्ञापक परिभाषित करते. cod_editorial INT(3) PRIMARY KEY AUTO_INCREMENT मध्ये, हे सुनिश्चित करते की कोणतीही डुप्लिकेट मूल्ये अस्तित्वात नाहीत, डेटा अखंडतेची अंमलबजावणी करण्यासाठी आवश्यक.
NOT NOT हे सुनिश्चित करते की फील्डमध्ये मूल्ये असू शकत नाहीत, डेटाची उपस्थिती लागू करते. उदाहरणार्थ, nombre VARCHAR(50) NOT हमी देते की प्रत्येक संपादकीयाला नाव असणे आवश्यक आहे.
FOREIGN KEY हे दोन सारण्यांमधील संबंध परिभाषित करते. FOREIGN KEY (id_editorial) REFERENCES editoriales(cod_editorial) मध्ये, ते लिंक करते libros सह संपादकीय, id_editorial मधील मूल्यांची अंमलबजावणी करणे cod_editorial मधील नोंदीशी जुळले पाहिजे.
REFERENCES विदेशी की कोणत्या टेबल आणि कॉलमशी संबंधित आहे हे निर्दिष्ट करण्यासाठी FOREIGN KEY सोबत संदर्भ वापरले जातात. सारण्यांमध्ये रिलेशनल डेटा अखंडता स्थापित करण्यासाठी आणि लागू करण्यासाठी हे महत्त्वपूर्ण आहे.
ALTER TABLE ALTER TABLE विद्यमान सारणी रचना सुधारते. उदाहरणार्थ, ALTER TABLE libros ADD CONSTRAINT fk_editorial सुरुवातीच्या टेबलच्या निर्मितीनंतर एक परदेशी की बंधन जोडते, नातेसंबंध व्यवस्थापित करण्यात लवचिकता देते.
CONSTRAINT CONSTRAINT fk_editorial सारख्या मर्यादा परदेशी की संबंधांना नावे देतात. हे सुलभ संदर्भास अनुमती देते, विशेषत: डेटाबेस वाचनीयता सुधारताना अद्यतने किंवा हटवणे आवश्यक असल्यास.
INDEX INDEX (id_editorial) शोध कार्यप्रदर्शन सुधारण्यासाठी id_editorial वर अनुक्रमणिका तयार करते. फॉरेन की कॉलम्सवरील इंडेक्स जॉईन आणि लुकअपला गती देऊ शकतात, जे मोठ्या डेटासेटची क्वेरी करताना उपयुक्त आहे.

फॉरेन की कंस्ट्रेंट्समधील एसक्यूएल सिंटॅक्स त्रुटींसाठी उपाय समजून घेणे

सोबत काम करताना MySQL किंवा मारियाडीबी XAMPP मध्ये, ERROR 1064 सारख्या वाक्यरचना त्रुटी दोन्ही गोंधळात टाकणाऱ्या आणि निराशाजनक असू शकतात. एसक्यूएल सिंटॅक्स मारियाडीबीच्या आवश्यकतांचे पालन करते याची खात्री करून या सामान्य समस्यांचे निराकरण करण्याचा वरील स्क्रिप्टचा उद्देश आहे, विशेषत: परदेशी की मर्यादा सेट करताना. पहिली स्क्रिप्ट टेबल स्ट्रक्चरमध्ये फॉरेन की डिक्लेरेशनमध्ये सुधारणा करून वाक्यरचना त्रुटी हाताळते, काळजीपूर्वक परदेशी की वेगळ्या ओळीवर मर्यादा. ही स्क्रिप्ट डेटाबेस सुरू करते आणि दोन संबंधित तक्ते तयार करते, 'संपादकीय' आणि 'लिब्रो', जेथे 'लिब्रोस' मध्ये 'संपादकीय' कडे निर्देश करणारी विदेशी की असते. हे सेटअप रिलेशनल डेटाबेसमध्ये सामान्य आहे, जेथे प्रत्येक पुस्तक ('लिब्रो'मध्ये) प्रकाशकाशी संबंधित असणे आवश्यक आहे ('संपादकीयांमध्ये'). येथे, मारियाडीबीसाठी टेबलांमधील संबंध योग्यरित्या समजून घेण्यासाठी योग्य वाक्यरचना महत्त्वपूर्ण आहे. 📝

दुसरा उपाय सुरुवातीला अडथळ्यांशिवाय टेबल तयार करून आणि नंतर परदेशी की वापरून एक लवचिक दृष्टीकोन प्रदान करतो. टेबल बदला आज्ञा ALTER TABLE वापरून, आम्ही नंतर परदेशी की मर्यादा जोडतो, आम्हाला अधिक नियंत्रण आणि त्रुटी प्रतिबंध पर्याय देतो. विद्यमान सारण्यांमध्ये बदल किंवा पुनर्रचना करताना ही पद्धत विशेषतः उपयुक्त आहे. उदाहरणार्थ, जर तुम्हाला पूर्व-अस्तित्वात असलेल्या टेबलमध्ये परदेशी की बंधने टाकायची असल्यास किंवा ती पुन्हा तयार न करता, ALTER TABLE तुम्हाला ते अखंडपणे करण्याची परवानगी देते. हा दृष्टिकोन टेबल तयार करताना वाक्यरचना संघर्ष टाळण्यास देखील मदत करतो, एक स्पष्ट, चरण-दर-चरण रचना प्रदान करतो ज्यामुळे डेटाबेस प्रत्येक आदेशाचा अचूक अर्थ लावतो याची खात्री करतो. हा दृष्टीकोन जटिल प्रकल्पांसाठी उत्तम आहे जेथे टेबलमध्ये आधीच डेटा असू शकतो किंवा एकाधिक रिलेशनल ऍडजस्टमेंटची आवश्यकता असू शकते. 💡

तिसरे स्क्रिप्ट उदाहरण फॉरेन की कॉलमवर इंडेक्स जोडून डेटाबेस कार्यक्षमता वाढवते, जे क्वेरी कार्यप्रदर्शन ऑप्टिमाइझ करते, विशेषत: मोठ्या डेटासेटमध्ये. परदेशी की हाताळताना इंडेक्सिंग लक्षणीय फरक करू शकते, कारण ते लुकअपला गती देते आणि टेबल्समध्ये सामील होते. उदाहरणार्थ, 'लिब्रो' सारणीमधील पुस्तकाच्या डेटाला 'संपादकीय' वरून प्रकाशकाचे नाव पुनर्प्राप्त करण्याची आवश्यकता असल्यास, अनुक्रमणिका मारियाडीबीला आवश्यक रेकॉर्ड अधिक द्रुतपणे शोधण्यात मदत करते. कार्यक्षमतेचा लाभ लहान डेटासेटमध्ये लगेच लक्षात येऊ शकत नसला तरी, मोठ्या, हजारो नोंदी असलेल्या वास्तविक-जागतिक डेटाबेसमध्ये, अनुक्रमणिका वापरणे ही एक उत्तम सराव आहे जी कार्यक्षमतेत लक्षणीय वाढ करते.

शेवटी, शेवटची जोड एक युनिट चाचणी स्क्रिप्ट आहे, जी तपासते की वैध आणि अवैध डेटा एंट्रीची चाचणी करून प्रत्येक परदेशी की मर्यादा हेतूनुसार कार्य करते. ही चाचणी प्रमाणित करण्यासाठी आवश्यक आहे की परदेशी की मर्यादा डेटाच्या विसंगतींना प्रतिबंधित करतात, जसे की अस्तित्वात नसलेल्या प्रकाशक आयडीसह पुस्तक जोडणे. उदाहरणार्थ, ‘संपादकीय’ मधील कोणत्याही ‘कोड_संपादकीय’शी जुळत नसलेल्या ‘आयडी_एडिटोरियल’ सह ‘लिब्रो’ मध्ये रेकॉर्ड घालण्याचा प्रयत्न करताना, अपेक्षेप्रमाणे चाचणी अयशस्वी होईल. अशा प्रकारे डेटाबेसची चाचणी करणे हे SQL डेव्हलपमेंटमध्ये एक उत्तम सराव आहे, कारण ते संभाव्य समस्या लवकर पकडण्यात मदत करते आणि हे सुनिश्चित करते की परदेशी की सर्व टेबल्सवर प्रभावीपणे रिलेशनल अखंडता राखतात. 👏

उपाय 1: परदेशी की संदर्भासाठी वाक्यरचना दुरुस्त करणे

मारियाडीबी मधील एसक्यूएल स्क्रिप्ट (एक्सएएमपीपी वातावरणात चाचणी केली)

CREATE DATABASE Ejercicio4_4A;
USE Ejercicio4_4A;

CREATE TABLE editoriales (
    cod_editorial INT(3) PRIMARY KEY AUTO_INCREMENT,
    nombre VARCHAR(50) NOT 
);

CREATE TABLE libros (
    cod_libro INT(3) PRIMARY KEY AUTO_INCREMENT,
    titulo VARCHAR(100) NOT ,
    id_editorial INT(3) NOT ,
    FOREIGN KEY (id_editorial) REFERENCES editoriales(cod_editorial)
);

उपाय 2: ALTER TABLE वापरून फॉरेन की कंस्ट्रेंट स्वतंत्रपणे जोडणे

मारियाडीबी मधील SQL स्क्रिप्ट (टेबल तयार केल्यानंतर परदेशी की जोडणे)

उपाय 3: कार्यप्रदर्शन ऑप्टिमायझेशन आणि प्रमाणीकरण तपासणीसाठी निर्देशांक जोडणे

मारियाडीबी मधील एसक्यूएल स्क्रिप्ट कार्यप्रदर्शन ऑप्टिमायझेशनसह (इंडेक्स जोडणे)

CREATE DATABASE Ejercicio4_4A;
USE Ejercicio4_4A;

CREATE TABLE editoriales (
    cod_editorial INT(3) PRIMARY KEY AUTO_INCREMENT,
    nombre VARCHAR(50) NOT 
);

CREATE TABLE libros (
    cod_libro INT(3) PRIMARY KEY AUTO_INCREMENT,
    titulo VARCHAR(100) NOT ,
    id_editorial INT(3) NOT ,
    INDEX (id_editorial),
    FOREIGN KEY (id_editorial) REFERENCES editoriales(cod_editorial)
);

फॉरेन की कंस्ट्रेंट व्हॅलिडेशनसाठी युनिट टेस्ट

मारियाडीबी मधील परदेशी की प्रतिबंध प्रमाणित करण्यासाठी SQL युनिट चाचणी

-- Insert valid entry into editoriales table
INSERT INTO editoriales (nombre) VALUES ('Editorial Uno');

-- Attempt to insert valid and invalid entries in libros table
INSERT INTO libros (titulo, id_editorial) VALUES ('Book One', 1); -- Expected: Success
INSERT INTO libros (titulo, id_editorial) VALUES ('Book Two', 99); -- Expected: Fail

मारियाडीबीमध्ये डेटाबेस मर्यादा आणि त्रुटी प्रतिबंध एक्सप्लोर करणे

रिलेशनल डेटाबेससह काम करताना जसे MySQL आणि मारियाडीबी, ERROR 1064 (42000) सारख्या त्रुटी टाळण्यासाठी परदेशी की हाताळणे आणि टेबल संबंधांसाठी योग्य वाक्यरचना समजून घेणे आवश्यक आहे. परकीय की मर्यादा शक्तिशाली आहेत कारण ते संदर्भात्मक अखंडतेची अंमलबजावणी करतात, हे सुनिश्चित करतात की सारण्यांमधील संबंध अबाधित राहतील. परंतु यासाठी अचूक वाक्यरचना आणि सुसंगत डेटा प्रकार देखील आवश्यक आहेत. उदाहरणार्थ, ‘लिब्रो’ आणि ‘एडिटोरिअल्स’ या सारण्यांचा दुवा साधताना, ‘लिब्रो’ मधील परदेशी की ‘संपादकीय’ मधील जुळणाऱ्या डेटा प्रकारासह प्राथमिक की संदर्भित करणे आवश्यक आहे. अगदी लहान वाक्यरचना त्रुटी किंवा जुळत नसल्यामुळेही अशा त्रुटी येऊ शकतात ज्यामुळे स्क्रिप्टची अंमलबजावणी पूर्णपणे थांबते. म्हणूनच मारियाडीबीमध्ये या आदेशांची योग्य रचना करणे, वरील उपायांमध्ये दाखविल्याप्रमाणे, महत्त्वपूर्ण आहे.

SQL कमांड हाताळताना आणखी एक महत्त्वाचा पैलू वापरणे आहे मर्यादा डेटा अखंडता व्यवस्थापित करण्यासाठी. उदाहरणार्थ, मर्यादा जसे NOT , , आणि CHECK डेटा एंट्रीसाठी अतिरिक्त नियम प्रदान करा जे विसंगत नोंदी डेटाबेसमध्ये प्रवेश करण्यापासून प्रतिबंधित करतात. शून्य मर्यादा हे सुनिश्चित करतात की विशिष्ट फील्ड, जसे की पुस्तकाची शीर्षके किंवा प्रकाशकांची नावे, नेहमी भरलेली आहेत. उत्पादन डेटाबेसमध्ये, केवळ वैध, सातत्यपूर्ण डेटा संग्रहित केला जाईल याची खात्री करून या मर्यादा लागू केल्याने समस्या लक्षणीयरीत्या कमी होऊ शकतात. याव्यतिरिक्त, मारियाडीबी टेबल तयार केल्यानंतर मर्यादा जोडण्याची परवानगी देते ALTER TABLE कमांड, जे प्रकल्प आवश्यकता विकसित होत असताना डेटाबेस सुधारण्यात लवचिकता देते.

क्वेरी ऑप्टिमाइझ करण्यासाठी आणि सामान्य वाक्यरचना समस्या कमी करण्यासाठी दुसरी पद्धत वापरणे आहे indexes. फॉरेन कीज सारख्या जोड्या किंवा शोधांमध्ये वारंवार गुंतलेल्या स्तंभांसाठी, अनुक्रमणिका लक्षणीय फरक करू शकते. हजारो पंक्ती असलेल्या मोठ्या टेबलमध्ये प्रवेश करताना हे विशेषतः उपयुक्त ठरू शकते. उदाहरणार्थ, वर निर्देशांक जोडणे 'libros' टेबलमधील स्तंभ 'libros' आणि 'editoriales' सारण्यांमध्ये सामील होणाऱ्या कोणत्याही ऑपरेशनला गती देण्यास मदत करतो, जे डेटाबेस अखंडता राखून क्वेरी कार्यप्रदर्शन सुधारते. या SQL स्ट्रक्चर्सचा कार्यक्षम वापर केवळ त्रुटी टाळत नाही तर संपूर्ण डेटाबेस कार्यप्रदर्शन देखील वाढवतो. 📈

मारियाडीबी सिंटॅक्स त्रुटी आणि मर्यादांबद्दल सामान्य प्रश्न आणि उत्तरे

  1. MariaDB मध्ये एरर 1064 (42000) कशामुळे होते?
  2. SQL स्क्रिप्टमधील वाक्यरचना चुकांमुळे ही त्रुटी अनेकदा उद्भवते. सामान्य कारणांमध्ये मारियाडीबी आवृत्तीसाठी गहाळ कीवर्ड, असंगत डेटा प्रकार किंवा असमर्थित SQL वाक्यरचना यांचा समावेश होतो. तुमच्या स्क्रिप्ट लाइनचे ओळीनुसार पुनरावलोकन केल्याने गहाळ घटक ओळखण्यात मदत होऊ शकते FOREIGN KEY किंवा .
  3. टेबल तयार केल्यानंतर मी परदेशी की मर्यादा जोडू शकतो का?
  4. होय, आपण वापरू शकता ALTER TABLE टेबल तयार केल्यानंतर परदेशी की मर्यादा जोडण्यासाठी कमांड. जेव्हा टेबल आधीपासूनच वापरात असेल किंवा मनोरंजनाशिवाय बदल आवश्यक असेल तेव्हा हे उपयुक्त आहे.
  5. निर्देशांक डेटाबेस कार्यप्रदर्शन कसे सुधारतात?
  6. निर्देशांक, जसे की कमांड, डेटाबेसला आवश्यक पंक्ती त्वरीत शोधण्याची परवानगी देऊन मोठ्या सारण्यांमध्ये डेटा पुनर्प्राप्तीची गती वाढविण्यात मदत करते. हे विशेषतः परदेशी की सारख्या टेबल्स शोधण्यासाठी किंवा सामील होण्यासाठी वारंवार वापरल्या जाणाऱ्या स्तंभांमध्ये उपयुक्त आहे.
  7. मारियाडीबीमध्ये परदेशी कीचे वाक्यरचना इतके कठोर का आहे?
  8. मारियाडीबी संदर्भात्मक अखंडता राखण्यासाठी परदेशी कीसाठी कठोर वाक्यरचना लागू करते. फॉरेन की संबंधित टेबलमधील रेकॉर्ड्स जोडलेले राहतील याची खात्री करतात, जे डेटा अचूकता आणि रिलेशनल डेटाबेसमधील सातत्य यासाठी महत्त्वपूर्ण आहे.
  9. मी माझ्या स्क्रिप्टमधील विदेशी की मर्यादा तपासू शकतो का?
  10. होय, तुम्ही संदर्भित प्राथमिक की सारणीशी जुळत नसलेली मूल्ये घालण्याचा प्रयत्न करून ते प्रमाणित करू शकता. जर प्रतिबंध सक्रिय असेल, तर अशा इन्सर्टेशन अयशस्वी होतील, हे दर्शविते की तुमचे FOREIGN KEY मर्यादा अपेक्षेप्रमाणे काम करत आहे.
  11. प्राथमिक की बंधनाचा उद्देश काय आहे?
  12. PRIMARY KEY मर्यादा टेबलमधील प्रत्येक रेकॉर्ड अद्वितीयपणे ओळखते, जे डुप्लिकेट टाळण्यास मदत करते. परकीय की सह सारण्या जोडण्यासाठी देखील आवश्यक आहे.
  13. मर्यादा का वापरतात?
  14. NOT निश्चित फील्डमध्ये रिक्त मूल्ये असू शकत नाहीत याची खात्री करते. उदाहरणार्थ, 'लिब्रो' सारणीमध्ये, ही मर्यादा सुनिश्चित करते की प्रत्येक पुस्तकाच्या एंट्रीला शीर्षक आहे, डेटा पूर्णता जतन करते.
  15. ALTER TABLE मर्यादांमध्ये कशी मदत करू शकते?
  16. ALTER TABLE कमांड तुम्हाला अडथळे जोडून किंवा काढून टाकून विद्यमान सारणी सुधारण्याची परवानगी देते, तुम्हाला टेबल पुन्हा न बनवता बदल करू देते.
  17. AUTO_INCREMENT वापरण्याचा काय फायदा आहे?
  18. AUTO_INCREMENT टेबलमधील प्रत्येक नवीन पंक्तीसाठी आपोआप एक अद्वितीय अभिज्ञापक तयार करते, रेकॉर्ड ट्रॅकिंग सुलभ करते, विशेषत: प्राथमिक कीसाठी.
  19. मारियाडीबी वाक्यरचना त्रुटींसाठी त्रुटी संदेश कसे हाताळते?
  20. MariaDB ERROR 1064 सारखे त्रुटी संदेश प्रदान करते, जे त्रुटी प्रकार आणि स्थान सूचित करतात. हे विकसकांना त्यांच्या SQL स्क्रिप्टमधील समस्यांचे निवारण आणि निराकरण करण्यात मदत करते.

की फिक्सेससह रॅपिंग अप

ERROR 1064 (42000) सारख्या त्रुटी अनेकदा लहान वाक्यरचना समस्यांमुळे उद्भवतात ज्याची MariaDB आणि MySQL काटेकोरपणे अंमलबजावणी करतात. आज्ञा काळजीपूर्वक तपासणे आणि समायोजित करणे, विशेषत: परदेशी की व्याख्या, डेटाबेस कार्यक्षमता राखण्यात मदत करते.

ALTER TABLE वापरणे किंवा अनुक्रमणिका जोडणे यासारख्या पद्धती लागू करणे भविष्यातील विकासामध्ये समान समस्या टाळू शकतात. या दृष्टिकोनांसह, विकासक त्यांचे प्रकल्प ट्रॅकवर ठेवून आणि डेटाबेस अखंडता राखून, वाक्यरचना त्रुटी अधिक कार्यक्षमतेने सोडवू शकतात. 🚀

MySQL ERROR 1064 सोडवण्यासाठी संसाधने आणि संदर्भ
  1. MySQL आणि MariaDB साठी तपशीलवार वाक्यरचना आणि कमांड मार्गदर्शक तत्त्वे: MySQL दस्तऐवजीकरण
  2. MariaDB सुसंगतता आणि परदेशी की वापर दस्तऐवजीकरण: मारियाडीबी नॉलेज बेस
  3. मारियाडीबी वातावरणात SQL वाक्यरचना त्रुटी आणि समस्यानिवारणासाठी उपाय: DigitalOcean Community Tutorials