قطعا یکی از مشکلاتی که برنامه نویسان زیاد با اون روبرو میشوند انتقال اطلاعات از یک پایگاه اطلاعاتی به پایگاه دیگر مخصوصاً با نوع متفاوت است. مثلاً اطلاعات را از MSSQL به MySQL انتقال دهیم. یا از یک فایل Microsoft Access یا حالا هر پایگاه اطلاعاتی فایلی یا Relational. معمولاً این کار را با ابزار های رایگان مانند MySQL Workbench یا پولی مانند Navicat انجام میدهند.
اما گاهی پیش میاد که امکان انتقال مستقیم وجود نداره. در این حالت بهترین راه خروجی گرفتن اطلاعات در یک مرحله به CSV و یا در دو مرحله به Xls یا Xlsx یا Ods و سپس به CSV.
زمانی که فایل CSV نهایی را داشته باشیم با خود دستورات SQL ، واردسازی به راحتی انجام پذیره. کافیه با دستور زیر به MySQL Server وصل بشیم :
mysql -u [username] --password=[password] --database=[database] –local-infile=TRUE
بعدش با دستور زیر محتویات فایل را داخل جدول مورد نظر میریزیم :
LOAD DATA LOCAL INFILE '/home/geekfarsi/file.csv' INTO TABLE [tablename] FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n' (field1, field2);
نکته : در ویندوز آدرس دهی اینطوری انجام میشه :
c:\\path\\to\\csvfile.csv
نکته : در ویندوز به جای n\ ازr\n\ استفاده میکنیم.
نکته : در صورتی که محتویات داخل فایل CSV فرمت utf-8 دارند قبل از دستور واردسازی از دستورات زیر استفاده کنید :
SET NAMES 'utf8' SET character_set_connection = 'utf8'