आप अपनी एक्सेल शीट को CSV फ़ाइल की तरह सेव करें
, फिर डेटा इनफाइल लोड करें
कमांड, और अंत में तीन टेबल "शहरों", "कस्बों" और "जिलों" में अस्थायी तालिका रिकॉर्ड को विभाजित करें।
एक आधार:चूंकि एक्सेल फ़ाइल में कोई भी "आईडी" फ़ील्ड मौजूद नहीं है, मुझे लगता है कि सभी आईडी "auto_increment" फ़ील्ड हैं; साथ ही, "कस्बों" तालिका के "महाद्वीप" फ़ील्ड को हमेशा एक रिक्त मान पर सेट किया जाएगा, क्योंकि यह फ़ील्ड आपकी एक्सेल शीट में मौजूद नहीं है; अंत में, मैं मान लूंगा कि सभी "नाम" फ़ील्ड में अधिकतम 255 वर्ण हैं।
आपके नमूना डेटा से शुरू होकर, CSV प्रारूप में एक्सेल शीट को निर्यात करके और (उदाहरण के लिए) "<मजबूत>सी:\Temp\excel.csv "फ़ाइल, आपको कुछ इस तरह मिलना चाहिए:
"city name","town name","district name"
"X","Y","A"
"X","Y","B"
"X","K","C"
"X","K","D"
इस फ़ाइल को अपने MySQL डेटाबेस में आयात करने के लिए, एक "excel2mysql.sql . बनाएं "निम्न सामग्री वाली फ़ाइल, और execute यह
:
DROP TABLE IF EXISTS excel_table;
CREATE temporary TABLE excel_table (
city_name VARCHAR(255),
town_name VARCHAR(255),
district_name VARCHAR(255)
) DEFAULT CHARSET utf8;
LOAD DATA LOCAL INFILE 'C:/Temp/excel.csv'
INTO TABLE excel_table
CHARACTER SET utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
DROP TABLE IF EXISTS cities;
CREATE TABLE cities (
city_id int NOT NULL auto_increment,
city_name VARCHAR(255),
primary key (city_id)
) DEFAULT CHARSET utf8;
INSERT INTO cities
SELECT distinctrow NULL, city_name
FROM excel_table
ORDER BY city_name;
DROP TABLE IF EXISTS towns;
CREATE TABLE towns (
town_id int NOT NULL auto_increment,
city_id int NOT NULL,
town_name VARCHAR(255),
continent VARCHAR(255),
primary key (town_id)
) DEFAULT CHARSET utf8;
INSERT INTO towns
SELECT distinctrow NULL, city_id, town_name, ''
FROM excel_table, cities
WHERE cities.city_name=excel_table.city_name
ORDER BY town_name;
DROP TABLE IF EXISTS districts;
CREATE TABLE districts (
district_id int NOT NULL auto_increment,
town_id int NOT NULL,
district_name VARCHAR(255),
primary key (district_id)
) DEFAULT CHARSET utf8;
INSERT INTO districts
SELECT distinctrow NULL, town_id, district_name
FROM excel_table, towns
WHERE towns.town_name=excel_table.town_name
ORDER BY district_name;