با فعالسازی گزینه LOCAL_INFILE در سرور و کلاینت، یک فایل CSV محلی را با دستور LOAD DATA LOCAL INFILE به جدول employees وارد کنید و حین وارد کردن ستون تاریخ را با STR_TO_DATE به نوع DATE تبدیل و برای ستون مبلغ از REPLACE جهت حذف علامت دلار استفاده کنید.
5.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:13 0.0
ابتدا با SHOW VARIABLES LIKE 'local_infile' بررسی کنید که local_infile فعال است و در صورت نیاز با راهاندازی سرور یا SET GLOBAL local_infile=1 و اجرای کلاینت با گزینه --local-infile=1 آن را فعال کنید. سپس از دستور LOAD DATA LOCAL INFILE 'مسیر/فایل.csv' INTO TABLE employees FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES (@col1,@date_str,@amount,...) SET hire_date = STR_TO_DATE(@date_str,'%d/%m/%Y'), salary = CAST(REPLACE(@amount,'$','') AS DECIMAL(10,2)) استفاده کنید؛ توجه کنید که LOCAL فایل را از طرف کلاینت میخواند و باید مجوز دسترسی به فایل و تنظیمات امنیتی مناسب فراهم باشد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهای کوتاه: فعالسازی LOCAL_INFILE هم در سرور و هم در کلاینت ضروری است، اما از نظر امنیتی به دسترسی فایلها و تنظیمات محیط توجه کنید. فراموش نکنید که کلاینت باید به فایل CSV روی ماشین خود دسترسی داشته باشد و با گزینه --local-infile=1 اجرا شود تا LOAD DATA LOCAL INFILE کار کند. هنگام استفاده از STR_TO_DATE، فرمت تاریخ ورودی را دقیقاً مطابق الگوی شما تنظیم کنید تا از بروز خطا جلوگیری شود. برای قیمت هم استفاده از REPLACE('$','') قبل از CAST به DECIMAL کارا است، اما مقادیر خالی یا نامعتبر را مدیریت کنید تا دادهها معتبر وارد شوند.
گزارش