زنگ.

کسانی هستند که این خبر را قبل از شما خوانده اند.
مشترک شدن برای دریافت مقالات تازه.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید زنگ را بخوانید
بدون هرزنامه
داده های بارگیری "file_name.txt" را به جدول tbl_name ["محصور شده توسط"]] [(col_name، ...)]

دستور Data Infile Data Load خطوط را از یک فایل متنی می خواند و آنها را به یک جدول در یک سرعت بسیار بالا وارد می کند. اگر کلمه کلیدی مشخص شده باشد، فایل از میزبان مشتری خوانده می شود. اگر محلی مشخص نشده باشد، فایل باید بر روی سرور باشد. (گزینه محلی در MySQL نسخه 3.22.6 و بعد از آن موجود است.)

اگر فایل های متنی مورد نظر شما را بخوانید، در سرور، سپس به دلایل امنیتی، این فایل ها باید در دایرکتوری پایگاه داده قرار داده شوند یا به همه کاربران مراجعه شوند. علاوه بر این، برای اعمال دستورات بارگیری اطلاعات بارگیری به فایل های سرور، شما باید امتیازات فایل را برای میزبان سرور داشته باشید. بخش 4.2.7 امتیازات ارائه شده توسط MySQL را ببینید.

در نسخه های MySQL 3.23.49 و MySQL 4.0.2، فرمان محلی در مواردی که Daemon MySQLD با پارامتر Local-Infile \u003d 0 در حال اجرا است یا اگر مشتری امکان حمایت از محلی را فعال کند، کار نخواهد کرد. بخش 4.2.4 مسائل مربوط به ایمنی مربوط به فرمان داده های بار محلی را ببینید.

اگر کلمه کلیدی low_priority مشخص شود، پس از اجرای این فرمان داده بار، بازداشت خواهد شد تا مشتریان دیگر این جدول را کامل کنند.

اگر کلمه کلیدی همزمان هنگام کار با جداول MyISAM مشخص شود، سپس موضوعات دیگر می توانند داده ها را از جدول در طول فرمان داده بار بازیابی کنند. البته استفاده از این ویژگی، البته، کمی تحت تاثیر عملکرد داده های بار قرار می گیرد، حتی اگر هیچ موضوع دیگری از این جدول در همان زمان استفاده نکنید.

هنگام استفاده از گزینه محلی، اعدام می تواند کمی کاهش یابد در مقایسه با ارائه سرور دسترسی به فایل به طور مستقیم، از آنجا که محتویات فایل باید از میزبان مشتری به سرور حرکت کند. از سوی دیگر، در این مورد نیازی به امتیازات فایل برای دانلود فایل های محلی وجود ندارد.

هنگام استفاده از نسخه های MySQL به 3.23.24 با استفاده از فرمان اطلاعاتی بارگیری، شما نمی توانید از FIFO بخوانید. اگر شما نیاز به خواندن از FIFO (به عنوان مثال، خروجی استاندارد GUNZIP)، شما باید استفاده از داده های بارگیری محلی محلی.

شما همچنین می توانید فایل های داده را با استفاده از ابزار MySQLLimport آپلود کنید. این ابزار دانلود فایل ها را با ارسال سرور سرور فرماندهی اطلاعات بارگیری بارگیری می کند. گزینه OleCal باعث می شود MySQLimport فایل های داده را از یک میزبان مشتری بخواند. شما می توانید پارامتر -compress را مشخص کنید تا عملکرد بهتر را در هنگام کار از طریق شبکه های آهسته کار کنید، اگر مشتری و سرور از پروتکل فشرده سازی داده ها پشتیبانی می کنند.

در مواردی که فایل ها در سرور هستند، دومی با توجه به قوانین زیر عمل می کند:

  • اگر مسیر مطلق (کامل) به فایل مشخص شود، سرور از این مسیر بدون تغییر استفاده می کند.
  • اگر مسیر نسبی به فایل با یک دایرکتوری اولیه یا چندگانه مشخص شود، پس از آن جستجوی فایل مربوط به دایرکتوری های مشخص شده در دایرکتوری داده Datadir است.
  • اگر مسیر به فایل بدون مشخص کردن دایرکتوری های اولیه داده شود، سرور برای این فایل در پایگاه داده استفاده می شود دایرکتوری استفاده می شود.

این به شرح زیر است که فایل مشخص شده به عنوان `./myfile.txt از دایرکتوری سرور خوانده شده است، در حالی که فایل مشخص شده به عنوان` myfile.txt، از دایرکتوری پایگاه داده استفاده شده خوانده شده است. به عنوان مثال، داده های بارگذاری فرمان زیر فایل data.txt را در دایرکتوری پایگاه داده برای DB1 خوانده می شود، زیرا DB1 پایگاه داده فعلی است، حتی اگر این دستور به صراحت حاوی یادداشت برای دانلود فایل به جدول پایگاه داده DB2 باشد:

MySQL\u003e استفاده از DB1؛ MySQL\u003e بارگیری داده ها "data.txt" را به جدول db2.my_table؛

کلمات کلیدی جایگزین و نادیده گرفتن کنترل پردازش سوابق ورودی، که سوابق موجود را با همان مقادیر کلیدهای منحصر به فرد تکرار می کنند. اگر جایگزین را مشخص کنید، خطوط جدید با همان کلید منحصر به فرد جایگزین می شوند. اگر شما را نادیده بگیرید، خطوط ورودی دارای یک کلید منحصر به فرد مشابه موجود هستند، از بین می روند. اگر هیچ یک از پارامترها مشخص نشده باشد، هنگامی که مقدار کلید تکراری شناسایی می شود، یک خطا رخ می دهد و قسمت باقی مانده از فایل متنی نادیده گرفته می شود.

اگر داده ها از فایل محلی با استفاده از کلمه کلیدی محلی بارگیری شوند، سرور قادر به وقوع انتقال داده ها در وسط این عملیات نخواهد بود، بنابراین به طور پیش فرض، اجرای دستور، همان چیزی است که در مورد آن اتفاق می افتد توسط نادیده گرفتن نشان داده شده است.

هنگام استفاده از داده های بارگیری در جداول Myisam خالی، تمام شاخص های غیر منحصر به فرد در یک بسته جداگانه ایجاد می شوند (مانند در تعمیر). این معمولا به طور قابل توجهی سرعت کار بارگیری داده ها را در صورت تعداد زیادی از شاخص ها افزایش می دهد.

دستور داده های بارگیری داده ها اختیاری است که برای انتخاب ... به بیرون بروید. بخش 6.4.1 را انتخاب کنید نحو اپراتور. برای ضبط داده ها از پایگاه داده به فایل، را انتخاب کنید ... به Outfile استفاده می شود. برای خواندن داده ها به پایگاه داده، بارگیری اطلاعات را بارگیری می کند. زمینه های نحو و خطوط در هر دو تیم یکسان هستند. هر دو بخش اختیاری هستند، اما اگر هر دو مشخص شوند، سپس فیلدها باید از خطوط جلوگیری کنند.

اگر زمینه مشخص شده باشد، هر یک از موارد زیر (خاتمه یافته توسط، محصور شده و فرار کرده) نیز اختیاری است، اما لازم است حداقل یکی از آنها را مشخص کنید.

اگر بیانیه فیلد تعریف نشده باشد، به طور پیش فرض پارامترهای آن مقادیر زیر را دریافت می کند:

زمینه ها توسط "\\ t" محصور شده توسط "" فرار شده توسط "\\\\"

اگر بیانیه خطوط تعریف نشده باشد، پس به طور پیش فرض، ساختار زیر را دارد:

خطوط خاتمه یافته توسط "\\ n"

به عبارت دیگر، هنگامی که تاسیسات پیش فرض، پس از خواندن اطلاعات ورودی، دستورالعمل ورودی را به صورت زیر کار می کند:

  • جستجو برای انتهای ردیف ها به صورت نمادها `\\ n"
  • ردیف ها را به میدان ها بر اساس نمادهای برگه اسلاید کنید.
  • انتظار نداشته باشید که زمینه ها را می توان در نمادهای استناد قرار داد.
  • تفسیر زبانه های مواجهه شده، یک رشته جدید یا \\ "، ارائه شده` \\ "، به عنوان حروف الفبا که بخشی از ارزش میدان است.

و در مقابل، اگر تنظیمات پیش فرض در هنگام ضبط خروجی معتبر باشد، انتخاب ... به فرمان outfile به صورت زیر کار خواهد کرد:

  • زبانه ها را بین فیلدها قرار دهید.
  • در نمادهای استناد وارد شوید. از نمادهای `\\" برای محافظت از نمونه های زبانه ها، یک رشته جدید یا \\ "استفاده کنید، که در میان زمینه های زمینه ظاهر می شود.
  • نمادهای رشته جدید را در انتهای هر رکورد قرار دهید.

باید در ذهن داشته باشید که در ورود فیلدهای فرار شده توسط \\ "شما باید دو خط معکوس معکوس را برای ارزش مشخص کنید که باید به عنوان یک واکنش خوانده شود.

گزینه های خطی نادیده گرفتن می تواند مورد استفاده قرار گیرد برای نادیده گرفتن هدر نام ستون در ابتدای فایل:

MySQL\u003e بارگیری اطلاعات Infile "/ tmp / file_name" به تست جدول نادیده گرفتن 1 خط؛

هنگام استفاده از SELECT ... به بیرون همراه با داده های بارگیری داده ها به طوری که داده ها از پایگاه داده به عنوان خوانده شده به فایل، و سپس از فایل به پایگاه داده، گزینه هایی که زمینه ها را پردازش می کنند، باید برای هر دو دستورات هماهنگ شوند. در غیر این صورت، بارگیری اطلاعات بارگیری نمی تواند محتویات این فایل را به درستی تفسیر کند. فرض کنید فرمان Outfile Select ... برای نوشتن به یک فایل با زمینه های جدا شده توسط کاما استفاده می شود:

MySQL\u003e SELECT * FIELDS "data.txt" را از بین ببرید "،" از ...؛

MySQL\u003e بارگیری داده ها Infile "data.txt" به جدول جدول 2 فیلد خاتمه یافته توسط "،"؛

MySQL\u003e بارگیری داده ها infile "data.txt" به جدول جدول 2 فیلد خاتمه یافته توسط "\\ t"؛

یک نتیجه مشابه اتفاق می افتد اگر هر خط ورودی به عنوان یک فیلد جداگانه تفسیر شود.

Command Infile Data نیز می تواند برای خواندن فایل های به دست آمده از منابع خارجی استفاده شود. به عنوان مثال، فیلدهای در فایل فرمت پایگاه داده DBase توسط کاما جدا می شوند و در نقل قول های دوگانه محصور خواهند شد. اگر خطوط در این فایل به پایان برسد با نمادهای یک خط جدید، سپس برای ضبط فایل، می توانید از دستور زیر استفاده کنید که در آن تنظیمات گزینه ها، زمینه های پردازش و خطوط نشان داده شده است:

MySQL\u003e بارگیری داده ها Infile "data.txt" را به جدول TBL_NAME Fields متوقف شده توسط "،" محصور شده توسط "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" متوقف شده توسط "\\ n"؛

هر یک از زمینه های پردازش گزینه ها و رشته ها می توانند رشته خالی را تنظیم کنند (""). اگر رشته خالی نیست، سپس گزینه های زمینه های محصور شده توسط و زمینه های فرار شده توسط باید شامل یک شخصیت باشد. مقادیر زمینه هایی که توسط گزینه ها و خطوط متوقف شده اند، ممکن است بیش از یک شخصیت را متوقف کنند. به عنوان مثال، برای ضبط ردیف به پایان دادن به جفت `` برگردان بازگشت - ترجمه خط "" (به عنوان در MS DOS یا فایل های متنی ویندوز)، شما باید بیان زیر را مشخص کنید: خطوط متوقف شده توسط "\\ r \\ n".

ایجاد جوک های جدول (یک کلید اولیه null auto_increment اصلی، متن شوخی نیست نه صفر)؛ اطلاعات بارگیری داده ها "/tmp/jokes.txt" را به رشته های جوک های جدول متوقف شده توسط ""؛ خطوط خاتمه یافته توسط "\\ n ٪٪ \\ n" (جوک)؛

گزینه های محصور شده توسط Bula برای کنترل زمینه های محصور شده در کاراکترهای مشخص شده استفاده می شود. اگر به صورت اختیاری حذف شود، سپس در خروجی (انتخاب ... به Outfile) تمام فیلدها در کاراکترهای مشخص شده در محصور محصور شده اند. یک نمونه از چنین خروجی (که در آن کاما به عنوان جداساز میدان استفاده می شود) در زیر نشان داده شده است:

"1"، "یک رشته"، "100.20" "2"، "یک رشته حاوی یک، کاما"، "102.20" "3"، "یک رشته حاوی \\" نقل قول "،" 102.20 "" 4 "،" یک رشته حاوی \\ "نقل قول و کاما"، "102.20"

اگر پارامتر اختیاری مشخص شده باشد، تنها فیلدهای Char و Varchar در محصور شده توسط نماد برجسته شده اند:

1، "یک رشته"، 100.20 2، "یک رشته حاوی A، کاما"، 102.20 3، "یک رشته حاوی \\" نقل قول "، 102.20 4،" یک رشته حاوی \\ "، نقل قول و کاما"، 102.20

باید به خاطر داشته باشید که ظاهر کاراکترهایی که در داخل میدان محصور شده اند، با استفاده از پیشوند از فرار توسط آن محافظت می شود. همچنین باید به خاطر داشته باشید که اگر مقدار خالی در فرار مشخص شود، ممکن است یک خروجی ایجاد کنید که اپراتور بی نهایت اطلاعات را نمی توان به درستی بخوانید. به عنوان مثال، اگر نماد محافظ یک رشته خالی باشد، خروجی ارائه شده در بالا به عنوان زیر نشان داده شده است. توجه: میدان دوم در خط چهارم شامل کاما پس از نقل قول است که (به طور اشتباه) به نظر می رسد که این فیلد را محدود کند:

1، "یک رشته"، 100.20 2، "یک رشته حاوی A، کاما"، 102.20 3، "یک رشته حاوی" نقل قول "، 102.20 4،" یک رشته حاوی "، نقل قول و کاما"، 102.20

برای ورود به علامت محصور شده، اگر این است، از هر دو انتهای زمینه حذف شده است. (این درست است که بدون توجه به اینکه آیا پارامتر به صورت اختیاری یا نه به صورت اختیاری: هنگام کار با داده های ورودی، گزینه اختیاری در نظر گرفته نشده است.) اگر محصور شده توسط شخصیت محصور شده باشد، پیش بینی شده است، پس از آن تفسیر می شود بخشی از ارزش میدان فعلی. علاوه بر این، کاراکتر های دوگانه محصور شده توسط فیلدهای داخل میدان به عنوان کاراکتر های تک محصور شده توسط، اگر این فیلد با این نماد خود آغاز شود، تفسیر می شود. به عنوان مثال، اگر آن را با محصور شده توسط "" مشخص شود، سپس نقل قول ها پردازش می شوند، همانطور که در زیر نشان داده شده است:

"رئیس" بزرگ "-\u003e رئیس" بزرگ "رئیس" بزرگ "رئیس -\u003e رئیس" بزرگ "" بزرگ "رئیس -\u003e" "" بزرگ "رئیس

زمینه های فرار از گزینه برای کنترل ضبط یا خواندن کاراکترهای خاص استفاده می شود. اگر زمینه های فرار از شخصیت خالی نیست، آن را به عنوان پیشوند برای کاراکترهای زیر در خروجی استفاده می شود:

  • زمینه های نماد فرار کرد
  • زمینه های محصور شده توسط نماد
  • نماد اول از زمینه ها متوقف شده و خطوط متوقف شده توسط
  • ASCII 0 نماد (در واقعیت پس از نماد محافظ نوشته شده است ascii `0، و نه بایت با اندازه صفر)

اگر نماد زمینه ها توسط خالی فرار کرد، هیچ کاراکتر محافظت نمی شود. در حقیقت، هیچ معنایی برای مشخص کردن نماد محافظ خالی ندارد، به خصوص اگر زمینه های زمینه های داده شده در داده های پردازش شامل هر یک از کاراکترهای مشخص شده در لیست بالا باشد.

اگر فیلدهای فرار شده توسط شخصیت خالی نیست، سپس در مورد ورود اطلاعات ورودی چنین شخصیتی، نماد به معنای واقعی کلمه به عنوان بخشی از مقدار میدان ساخته شده است. استثنائات محافظت شده `0" یا n "(به عنوان مثال، \\ 0 یا \\ n، اگر نماد محافظ` \\) باشد. این توالی ها به عنوان ASCII 0 (BYTES با صفر مقادیر) و null تفسیر می شوند. زیر پردازش صفر را ببینید قوانین

برای به دست آوردن اطلاعات کامل تر در مورد نماد SHOULD SYMBLE `\\، به بخش 6.1.1 توجه کنید: ارائه ردیف ها و اعداد.

در برخی موارد، گزینه های پردازش زمینه و رشته های تعامل:

  • اگر خطوط متوقف شده توسط یک رشته خالی است و زمینه های خاتمه یافته توسط یک رشته خالی نیست، خطوط نیز به پایان می رسد با کاراکترها به پایان برسد.
  • اگر هر دو فیلد از بین رفته و زمینه های محصور شده توسط خالی (")، سپس یک فرمت خط ثابت اعمال می شود (بدون جداساز). در یک فرمت خط ثابت، هیچ جداساز بین زمینه ها ارائه نمی شود. در عوض، هنگام خواندن و نوشتن مقادیر ستون ها، ستون "خروجی" "ستون استفاده می شود. به عنوان مثال، اگر ستون به عنوان int (7) اعلام شود، مقادیر این ستون با استفاده از زمینه های 7 کاراکتر نوشته شده است. مقادیر ورودی برای این ستون با خواندن 7 کاراکتر به دست می آید. فرمت با رشته ثابت نیز بر پردازش مقادیر صفر تاثیر می گذارد (نگاه کنید به زیر). توجه داشته باشید که فرمت اندازه ثابت هنگام استفاده از مجموعه چند منظوره از شخصیت ها کار نخواهد کرد.

مقادیر null بسته به زمینه ها و گزینه های خطوط استفاده می شود متفاوت خواهد بود:

  • به طور پیش فرض، مقادیر زمینه ها و خطوط صفر به عنوان \\ n برای خروجی نوشته شده است و \\ n به عنوان NULL برای ورودی خوانده می شود (بر اساس فرضیه ای که توسط نماد فرار می کند \\ ").
  • اگر زمینه های محصور شده توسط خالی نباشد، سپس فیلد که ارزش آن یک کلمه از حروف null است، به عنوان یک مقدار صفر می نویسد (بر خلاف کلمه خالی که بین کاراکترهای محصور شده، که به عنوان رشته "null" خوانده می شود، خوانده می شود.
  • اگر فیلدهای فرار شده توسط خالی باشد، صفر به عنوان کلمه خالی نوشته شده است.
  • در یک فرمت رشته ثابت (که در صورتی صورت می گیرد، اگر هر دو مشخص کننده از بین بروند و زمینه های محصور شده توسط - خالی هستند)، صفر به عنوان یک رشته خالی نوشته شده است. توجه داشته باشید که به عنوان یک نتیجه، مقدار صفر و یک رشته خالی در این جدول در هنگام نوشتن به یک فایل غیر قابل تشخیص است، زیرا هر دو به عنوان رشته های خالی ثبت می شوند. اگر لازم است که این مقادیر هنگام خواندن خواندن فایل متفاوت باشند، نباید از فرمت با یک رشته ثابت استفاده کنید.

برخی از موارد با استفاده از اپراتور نوزادان بارگیری پشتیبانی نمی شوند:

  • ردیف ها با یک اندازه ثابت (هر دو گزینه توسط و فیلدهای محصور شده توسط خالی) و حباب یا ستون های متن متوقف می شوند.
  • اگر جداساز مشخص شده باشد، که با یکی دیگر از آنها یا پیشوند دیگر همخوانی دارد، اطلاعات بارگذاری داده ها قادر به تفسیر ورودی به درستی نیست. به عنوان مثال، تأیید زمینه های زیر باعث مشکلات می شود: فیلدها توسط "" محصور شده توسط ""
  • اگر زمینه Escapad با گزینه خالی، سپس زمینه های محصور محصور شده در این زمینه، مورد فیلدهای محصور شده توسط یا خطوط متوقف شده توسط، و پس از آن زمینه هایی که توسط نماد متوقف می شود، منجر به تکمیل زودرس از خواندن یا رشته فیلد می شود دستور اطلاعات بارگیری این به خاطر این واقعیت است که بارگیری داده ها را به درستی نمی توان تعیین کرد که در آن زمینه یا رشته به پایان می رسد.

مثال زیر تمام ستون های جدول Persondata را دانلود می کند:

MySQL\u003e بارگیری داده ها "persondata.txt" را به میز Persondata؛

فهرست فیلدهای مشخص نشده است، بنابراین، فرمان داده های بارگیری، انتظار می رود رشته های ورودی برای پر کردن هر ستون جدول. این از زمینه های پیش فرض و مقادیر خطوط استفاده می کند.

اگر می خواهید فقط برخی از ستون های جدول را دانلود کنید، باید لیست ستون ها را مشخص کنید:

MySQL\u003e بارگیری داده ها "persondata.txt" را به میز Persondata (Col1، Col2، ...)؛

لیست زمینه ها باید در مواردی مشخص شود که آیا ترتیب فیلدهای موجود در فایل ورودی از دستور ستون ها در این جدول متفاوت است. در غیر این صورت، MySQL قادر به تنظیم مکاتبات فیلدهای تزریقی و ستون های جدول نخواهد بود.

اگر رشته دارای چندین زمینه باشد، سپس ستون هایی که هیچ فیلد در فایل ورودی وجود ندارد، به مقادیر پیش فرض آنها تنظیم می شوند. تخصیص پیش فرض در بخش 6.5.3 شرح داده شده است STANTAX اپراتور جدول.

ارزش میدان خالی متفاوت از عدم وجود ارزش است:

  • برای انواع رشته، ستون در یک رشته خالی نصب شده است.
  • برای انواع عددی، ستون به 0 تنظیم شده است.
  • برای نوع و نوع زمان، ستون به نوع مربوطه `` صفر تنظیم شده است. بخش 6.2.2 داده ها و انواع داده ها را ببینید.

توجه داشته باشید که اینها مقادیر مشابهی هستند که در یک نتیجه از یک تجسم صریح یک رشته خالی توسط ستون های رشته، انواع عددی، یا تاریخ یا نوع زمان در فرمان وارد شده یا به روز رسانی خواهد بود.

ستون های Timestamp فقط در تاریخ یا زمان فعلی نصب می شوند که در مواردی که مقدار صفر به ستون اختصاص داده می شود یا (فقط برای اولین ستون Timestamp) قرار می گیرد، اگر ستون Timestamp از لیست فیلدهای خارج شود، اگر چنین لیست مشخص شده باشد.

اگر خط ورودی دارای میدان های زیادی باشد، زمینه های غیر ضروری نادیده گرفته می شوند و تعداد هشدارها افزایش می یابد.

دستور NOW Data Infile تمام ورودی ها را به عنوان خطوط تفسیر می کند، بنابراین شما نمیتوانید مقادیر عددی را برای enum یا تنظیم ستون ها و همچنین برای دستورات قرار دهید. تمام مقادیر Enum و Set باید به عنوان ردیف مشخص شوند!

هنگام استفاده از API C، می توانید اطلاعات مربوط به درخواست را با فراخوانی تابع MySQL_INFO () API () در انتهای پرس و جو اطلاعات بارگیری بارگیری دریافت کنید. در زیر فرمت رشته اطلاعات برای این مورد است:

سوابق: 1 حذف شده: 0 Skipped: 0 هشدار: 0

هشدارها تحت شرایط مشابه همانطور که هنگام ضبط مقادیر در Insert صادر می شود (به بخش 6.4.3، نحو اپراتور وارد کنید) صادر می شود، به جز اینکه دستور داده های بارگذاری داده ها علاوه بر این، هشدارها را تولید می کند، زمانی که تعداد کمی یا بیش از حد بسیاری از زمینه ها در ورودی تولید می شود ردیف هشدار در هر جایی ذخیره نمی شود تعداد هشدارها تنها می تواند مورد استفاده قرار گیرد تا بررسی شود که آیا اقدامات مشخص شده به طور معمول انجام می شود. اگر شما نیاز به دقت بدانید دلایل هشدارها، شما باید دستور select را انتخاب کنید ... iNo Outfile را به یک فایل دیگر اجرا کنید و نتیجه را با فایل ورودی اصلی مقایسه کنید، تنها راهی برای دریافت چنین اطلاعاتی است.

اگر شما نیاز به اجرای داده های بار برای خواندن از کانال دارید، می توانید ترفند زیر را اعمال کنید:

mkfifo / mysql / db / x / x chmod 666 / mysql / db / x / x cat / nt / mysql / db / x / x mysql -e "بارگیری اطلاعات Infile" X "به جدول X" X

هنگام استفاده از نسخه MySQL قدیمی تر از 3.23.25، می توان فوق را تنها با داده های بارگذاری محلی محلی انجام داد.

برای دریافت اطلاعات بیشتر در مورد راندمان در مقایسه با داده های بارگیری و افزایش سرعت بارگیری داده ها، بخش بخش را ببینید

من یک وضعیت نسبتا مکرر را توصیف می کنم. در طول Penzet، دسترسی به PHPMyAdmin در یک میزبان از راه دور دریافت شد، اما نتواند از طریق آن به فایل ها برسد. file_priv بدرفتاری \u003d هیچ پرچم برای همه چیز در تنظیمات Demon MySQL سرزنش نمی شود. بسیاری در این وضعیت از بین می روند و معتقدند که فایل های میزبان به این ترتیب نمی خوانند. اما این همیشه نیست.

هشدار

تمام اطلاعات صرفا برای اهداف اطلاعاتی ارائه می شود. نه سردبیران و نه نویسنده مسئول هر گونه آسیب احتمالی ناشی از مواد این مقاله نیستند.

مقدمه

هنگامی که به تعامل MySQL COFD با سیستم فایل می آید، به عنوان یک قانون به یاد می آورید:

  • ویژگی Load_File که به شما اجازه می دهد فایل ها را روی سرور بخوانید؛
  • ... را انتخاب کنید ... به Outfile، که شما می توانید فایل های جدید ایجاد کنید.

بر این اساس، اگر دسترسی به phpMyAdmin یا هر مشتری دیگر در یک دستگاه از راه دور به دست آمده، پس از آن با احتمال بالا از طریق MySQL شما می توانید به سیستم فایل دسترسی پیدا کنید. اما فقط ارائه شده است که file_priv \u003d YES پرچم در تنظیمات دیو نصب شده است، که همیشه اتفاق نمی افتد. در این مورد، ما باید اپراتور دیگر را به یاد داشته باشیم، بسیار کمتر شناخته شده است، اما با یک عملکرد نسبتا قدرتمند. من در مورد اپراتور بی نهایت اطلاعات بارگیری صحبت می کنم، در مورد ویژگی های آن نیز در این مقاله نیز گفته می شود.

تعامل PHP و MySQL

پی اچ پی رایج ترین زبان برای ایجاد برنامه های کاربردی وب است، بنابراین ارزش آن را با توجه به جزئیات بیشتر با پایگاه داده تعامل دارد.

در PHP4، کتابخانه های مشتری MySQL به طور پیش فرض فعال شده و در تحویل پی اچ پی گنجانده شده است، بنابراین امکان استفاده از MySQL هنگام نصب، مشخص کردن گزینه بود

بدون mysql

PHP5 بدون کتابخانه مشتری می آید در * Nix-Systems معمولا PHP5 را با کتابخانه libmysqlclient نصب شده بر روی سرور، به سادگی با مشخص کردن گزینه

با-mysql \u003d / usr

هنگام مونتاژ در عین حال، به نسخه 5.3 برای تعامل با MySQL Server، کتابخانه کتابخانه MySQL MySQL (LibmySQL) استفاده می شود، رابط کاربری که برای ارتباط با برنامه های PHP بهینه نشده است.

برای PHP 5.3 و بالاتر، راننده بومی MySQL (MySQLND) توسعه یافت، و در نسخه جدید به نظر می رسد PHP 5.4 این راننده به طور پیش فرض استفاده می شود. اگر چه درایور MySQL ساخته شده به عنوان پی اچ پی نوشته شده است، مهم است بدانید که برنامه نویس جدید API را ارائه نمی دهد. API به پایگاه داده MySQL برای برنامه نویس، افزونه های MySQL، MySQLI و PDO_MYSQL را فراهم می کند. این برنامه های افزودنی می توانند از امکانات درایور داخلی MySQL برای برقراری ارتباط با Daemon MySQL استفاده کنند.

با استفاده از راننده داخلی MySQL، برخی از مزایای مربوط به کتابخانه MySQL Client را ارائه می دهد: به عنوان مثال، شما نیازی به نصب MySQL برای جمع آوری پی اچ پی یا استفاده از اسکریپت ها با استفاده از پایگاه داده نیستید. اطلاعات بیشتر در مورد راننده بومی MySQL و تفاوت های آن از libmysql را می توان در اسناد یافت.

گسترش MySQL، MySQLI و PDO_MYSQL می توانند به صورت جداگانه پیکربندی شوند تا از libmysql یا mysqlnd استفاده کنند. به عنوان مثال، برای پیکربندی Extension MySQL برای استفاده از کتابخانه مشتری MySQL، و پسوند MySQLI برای کار با راننده بومی MySQL، باید گزینه های زیر را مشخص کنید:

`./configure --with-mysql \u003d / usr / bin / mysql_config - with-mysqli \u003d mysqlnd`

داده های بار نحو

بارگذاری داده اپراتور، به عنوان مستندات خواندن، ردیف از فایل را می خواند و آنها را به یک جدول با سرعت بسیار بالا بارگذاری می کند. این را می توان با کلمه کلیدی محلی (موجود در MySQL 3.22.6 و نسخه های بعدی)، که نشان می دهد که در آن داده ها از آن دانلود می شود. اگر کلمه محلی گم شده باشد، سرور فایل مشخص شده را از دستگاه محلی خود به جدول، و نه از دستگاه مشتری بارگیری می کند. به عبارت دیگر، فایل توسط مشتری MySQL خوانده می شود، بلکه سرور MySQL. اما برای این عملیات، دوباره، امتیاز فایل مورد نیاز است (file_priv \u003d بله پرچم). اعدام اپراتور در این مورد، شما می توانید با استفاده از تابع load_file مقایسه کنید - با تنها تفاوت که داده ها به جدول بارگیری می شود و نه خروجی. بنابراین، با استفاده از داده های بارگیری نوزادان برای خواندن فایل ها فقط زمانی که عملکرد load_file در دسترس نیست، منطقی نیست، یعنی، در نسخه های بسیار قدیمی سرور MySQL.

اما اگر اپراتور در این فرم استفاده شود: بارگیری داده های محلی محلی، یعنی استفاده از کلمه محلی، فایل قبلا توسط برنامه مشتری (در دستگاه مشتری) خوانده شده است و به سرور که در آن پایگاه داده واقع شده است، می رود. در عین حال، برای دسترسی به فایل ها، امتیاز فایل، به طور طبیعی، مورد نیاز نیست (به عنوان همه چیز در دستگاه مشتری اتفاق می افتد).

Extensions MySQL / MySQLI / PDO_MYSQL و اپراتور بارگذاری داده های محلی

در گسترش MySQL، توانایی استفاده از محلی توسط دستورالعمل php_ini_system mysql.allow_local_infile تنظیم می شود. به طور پیش فرض، این دستورالعمل 1 است، و بنابراین اپراتور مورد نیاز شما معمولا در دسترس است. همچنین ویژگی mysql_connect به شما اجازه می دهد تا از توانایی استفاده از داده های بار محلی استفاده کنید اگر یک 128 ثابت در استدلال پنجم قرار بگیرد.

هنگامی که فرمت PDO_MYSQL برای اتصال به پایگاه داده استفاده می شود، ما همچنین می توانیم پشتیبانی محلی را با استفاده از PDO :: mysql_attr_local_infile (integer) ثابت کنیم

$ PDO \u003d جدید PDO ("MySQL: host \u003d localhost؛ dbname \u003d mydb"، "کاربر"، "pass"، آرایه (PDO :: mysql_attr_local_infile \u003d\u003e 1))؛

اما بیشترین فرصت های عالی برای کار با اپراتور داده بار، تمدید MySQLI را فراهم می کند. این گسترش نیز توسط دستورالعمل php_ini_system از mysqli.allow_local_infile ارائه شده است که استفاده از محلی را تنظیم می کند.

اگر اتصال با استفاده از mysqli_real_connect انجام شود، سپس با استفاده از mysqli_options، ما می توانیم پشتیبانی محلی را فعال و غیرفعال کنیم. علاوه بر این، این ویژگی فرمت MySQLI_SET_LOCAL_INFILE_HANDLER در دسترس است، که به شما اجازه می دهد تا یک تابع فراخوانی را برای پردازش محتویات فایل های خوانده شده توسط اپراتور نایلوۀ محلی را بخوانید.

خواندن فایل ها

خواننده توجه احتمالا قبلا حدس زده اند که اگر ما یک حساب کاربری در phpmyadmin داشته باشیم، ما قادر خواهیم بود فایل های دلخواه را بدون داشتن یک پرونده پرونده بخوانیم و حتی از محدودیت های Open_Basedir استفاده کنیم. پس از همه، این اغلب مشتری است (در این مورد phpmyadmin)، و daemon mysql در همان ماشین است. علیرغم محدودیت های محدودیت های امنیتی سرور MySQL، ما می توانیم از این واقعیت استفاده کنیم که این سیاست برای مشتری کار نمی کند و هنوز هم فایل ها را از سیستم می خواند، آنها را به پایگاه داده تعطیل کنید.

الگوریتم ساده است فقط پرس و جوهای SQL زیر را اجرا کنید:

  1. ایجاد یک جدول که در آن ما محتویات فایل ها را ضبط می کنیم: ایجاد تمپ جدول (متن محتوا)؛
  2. ما محتویات فایل را به جدول ایجاد شده ارسال می کنیم: بارگیری اطلاعات محلی "/ etc / hosts" را به حوزه های TEMP TEMP که توسط "EOF" توسط "EOF" که توسط "EOF" متوقف می شوند، متوقف می شود؛

voila محتویات فایل / etc / hosts در حال حاضر در جدول TEMP هستند. آیا شما نیاز به خواندن فایل های دودویی دارید؟ مشکلی نیست. اگر در مرحله اول ما چنین جدول ایجاد کنیم:

ایجاد جدول "bin" ("bin" blob null) engine \u003d myisam؛

این امکان وجود دارد که هر دو فایل باینری را دانلود کنید. درست است، بیت های غیر ضروری به پایان فایل ها اضافه می شوند، اما آنها را می توان در هر ویرایشگر HEX حذف کرد. به این ترتیب، شما می توانید اسکریپت ها را از سرور محافظت شده توسط ioncube / zend / truuecrypt / nusphere دانلود کنید و آنها را رمزگشایی کنید.

مثال دیگری از نحوه استفاده از داده های بار محلی، پیدا کردن راه به پیکربندی آپاچی است. این به شرح زیر انجام می شود:

  1. ابتدا مسیر را به باینری یاد بگیرید، زیرا ما خواندن / proc / self / cmdline در بالا توضیح دادیم.
  2. و سپس به طور مستقیم باینری را بخوانید، جایی که ما به دنبال httpd_root / server_config_file هستیم.


واضح است که در این وضعیت، اسکریپت های phpmyadmin نقش مشتری را برای اتصال به پایگاه داده ایفا می کنند. و به جای phpmyadmin، شما می توانید از هر رابط وب دیگر برای کار با MySQL استفاده کنید.

به عنوان مثال، شما می توانید اسکریپت ها را برای پشتیبان گیری استفاده کنید و پایه را بازیابی کنید. در سال 2007، هکر فرانسوی تحت Nick Acadroot به طور عمومی بر اساس این اظهارنظر و فرصت خواندن فایل ها از پنل مدیریت phpbb<= 2.0.22.

تونل راحت است تونل ناامن

هنگام نصب برنامه های پیچیده وب، دسترسی مستقیم به پایگاه داده اغلب مورد نیاز است، به عنوان مثال، برای پیکربندی اولیه و تنظیم اسکریپت ها. بنابراین، در بعضی موارد، توصیه می شود یک اسکریپت ساده را بر روی سرور نصب کنید - به اصطلاح MySQL تونل، که به شما اجازه می دهد درخواست های مربوط به پایگاه داده را با استفاده از یک مشتری مناسب به جای phpmyadmin سنگین انجام دهید.

تونل های زیادی برای کار با یک پایگاه داده وجود دارد، اما همه آنها بسیار رایج نیستند. شاید یکی از معروف ترین اسکریپت های Macromedia Dream Weaver Server باشد. مشاهده کد منبع این اسکریپت می تواند باشد.

تفاوت اصلی بین تونل MySQL از phpMyAdmin نیاز به وارد کردن نه تنها ورود به سیستم و رمز عبور از پایگاه داده، بلکه میزبان که شما نیاز به اتصال دارید. در عین حال، تونل ها اغلب فعال هستند، خوب، فقط فقط در مورد، شما هرگز نمی دانید چه چیز دیگری باید پشتیبانی شود. به نظر می رسد که توسط آنها استفاده می شود، فقط اگر یک حساب کاربری در پایگاه داده وجود داشته باشد - پس چه چیزی می ترسد؟ به طور خلاصه، به نظر می رسد که تونل یک تهدید امنیتی ویژه به سرور وب خرس نیست. اما در واقع، همه چیز خیلی خوب نیست، همانطور که در نگاه اول به نظر می رسد.

وضعیت زیر را در نظر بگیرید. اجازه دهید سایت Site.com با تونل نصب شده http://site.com/_mmmservs/mmhttpdb.php نصب شده ONSER. فرض کنید که بر روی سرور، اما فرصتی برای استفاده از داده های بار محلی وجود دارد (همانطور که در بالا بحث شده است، به عنوان مثال، احتمالا در تنظیمات پیش فرض). در این مورد، ما می توانیم یک سرور MySQL از راه دور، در پایه ای که از همه جا مجاز است و همچنین اجازه می دهد تا شما را به استفاده از محلی، و با استفاده از این سرور با استفاده از تونل. داده ها را با سرور MySQL از راه دور متصل کنید:

میزبان DB: xx.xx.xx.xxx db نام: name_remote_db db کاربر: uR_user db pass: ur_pass

در این وضعیت، سرور A نقش مشتری را بازی خواهد کرد و بنابراین ما می توانیم فایل ها را از میزبان خود به یک پایگاه داده از راه دور ارسال کنیم یا به عبارت دیگر فایل ها را بخوانیم. درخواست بعدی غیرقانونی:

type \u003d mysql & tateout \u003d 100 & host \u003d xx.xxx.xx.xxx.xxx.xxx & database \u003d name_remote_db & username \u003d ware_user & password \u003d uS__Pass & opcode \u003d exectuTutesql & sql \u003d load data infile /to/script/setup_options.php "به جدول tmp_tbl fields توسط" __EOF__ "فرار شده توسط" "خطوط متوقف شده توسط" __eof__ "متوقف می شود

در واقع، این آسیب پذیری خطرناک تر از خواندن معمول فایل ها است: پس از همه، به شما اجازه می دهد تا فایل های پیکربندی اسکریپت های نصب شده بر روی سرور A را بخوانید. از طریق همان تونل، می توانید دسترسی مستقیم به پایگاه داده را کنترل کنید این اسکریپت ها تکنیک که در بالا توضیح داده شده در مورد استفاده از تونل های عضلانی می تواند کمی تعمیم یافته و در طول عملیات آسیب پذیری های غیر زیرین اعمال شود.


مشتری سرور.

به منظور درک بهتر امکانات بارگذاری داده ها، لازم است به یاد داشته باشید که Sugd MySQL از معماری سرور سنتی مشتری استفاده می کند. کار با MySQL، ما در واقع با دو برنامه کار می کنیم:

  • برنامه سرور پایگاه داده واقع در رایانه ای که پایگاه داده ذخیره می شود. Daemon MySQLD "گوش دادن" درخواست های مشتری در سراسر شبکه و دسترسی به محتویات پایگاه داده، ارائه اطلاعاتی که مشتریان درخواست می کنند. اگر MySQLD با گزینه در حال اجرا باشد - Local-infile \u003d 0، سپس محلی کار نخواهد کرد؛
  • برنامه مشتری به سرور متصل می شود و درخواست ها را به سرور منتقل می کند. توزیع Cubd MySQL شامل چندین برنامه مشتری است: مشتری Console MySQL (اغلب مورد استفاده)، و همچنین MySqlShow، MySQLlimport، MySQLShow، MySQLimport و غیره. و در صورت لزوم، شما حتی می توانید برنامه مشتری خود را بر اساس کتابخانه مشتری LibMySQL استاندارد، که همراه با MySQL Cut است، ایجاد کنید.

اگر با استفاده از سرویس استاندارد MySQL Client نتواند از اپراتور محلی داده بار استفاده کند، لازم است از کلید Nocal-Infile استفاده کنید:

MySQL - Local-infile sampdb mysql\u003e بارگیری داده های محلی infile "member.txt" به عضو جدول؛

یا مشخص کردن در گزینه / smy.cnf فایل برای مشتری:

nocal-infile \u003d 1

مهم است که توجه داشته باشید که به طور پیش فرض تمام مشتریان MySQL و کتابخانه ها با گزینه های -enable-local-infile برای ارائه سازگاری با MySQL 3.23.48 و نسخه های قدیمی تر کامپایل می شوند، بنابراین داده های بار محلی معمولا برای مشتریان استاندارد در دسترس است. با این حال، دستورات به سرور MySQL عمدتا از کنسول ارسال نمی شود، اما از اسکریپت ها، بنابراین، زبان های توسعه وب نیز مشتریان را به کار با یک پایگاه داده که ممکن است در عملکرد از مشتری MySQL استاندارد متفاوت باشد.

البته، این ویژگی اپراتور داده بار ممکن است تهدیدی برای امنیت سیستم باشد، و از این رو، با شروع از نسخه MySQL 3.23.49 و MySQL 4.0.2 (4.0.13 برای WIN)، گزینه محلی تنها کار خواهد کرد هر دو مشتری و سرور هستند - اجازه دهید آن را.

دور زدن محدودیت ها open_basedir

با استفاده از داده های بار، اغلب به شما اجازه می دهد تا محدودیت های Open_Basedir را از بین ببرید. این ممکن است مفید باشد اگر، به عنوان مثال، ما به یک دایرکتوری از یک کاربر در یک میزبانی مشترک دسترسی داریم، اما ما می خواهیم اسکریپت ها را از دایرکتوری اصلی کاربر دیگر بخوانیم. سپس با تنظیم چنین اسکریپت

یکی))؛ $ e \u003d $ pdo-\u003e exec ("بارگیری داده های محلی ورود به سیستم" ./path/to/file "به میدان های تست جدول متوقف شده توسط" __EOF__ "فرار شده توسط" __eof__ "")؛ $ pdo \u003d null؛ \u003e\u003e

نتیجه

این کنجکاو است که احتمال توصیف داده های بار اپراتور حداقل ده سال شناخته شده است. به عنوان مثال، ذکر شده، می تواند در بلیط [# 15408] (Safe Mode / MySQL Vuln 2002-02-06) پیدا شود، و سپس سوالات مشابه بارها و بارها با bugs.php.net [# 21356] [# 23779] ] [# 28632] [# 31261] [# 31711]. به آن توسعه دهندگان به معنای واقعی کلمه به موارد زیر پاسخ دادند:

[ایمیل محافظت شده] این یک اشکال نیست، این یک ویژگی است :)

یا اختصاص داده شده بلیط "وضعیت: ثابت کردن". یا محدود به تکه هایی بود که تقریبا هیچ چیز را حل نکرده اند. بلیط های این موضوع دوباره ظاهر شد. بنابراین، راه مشخص شده برای دور زدن open_basedir و هنوز هم در تعداد زیادی از سرورها کار می کند. با این حال، با ظهور راننده جدید MySQLND، به نظر می رسد که تصمیم گرفته شده است تا تغییرات قابل توجهی را انجام دهد: در طول تاسیسات پیش فرض، این اپراتور در حال حاضر در همه [# 54158] [# 55737] اعدام نخواهد شد امیدوارم در آینده نزدیک، توسعه دهندگان در این زمینه سفارش را به ارمغان بیاورند.

داده های بارگیری "file_name.txt" را به جدول tbl_name ["محصور شده توسط"]] [(col_name، ...)]

دستور Data Infile Data Load خطوط را از یک فایل متنی می خواند و آنها را به یک جدول در یک سرعت بسیار بالا وارد می کند. اگر کلمه کلیدی مشخص شده باشد، فایل از میزبان مشتری خوانده می شود. اگر محلی مشخص نشده باشد، فایل باید بر روی سرور باشد. (گزینه محلی در MySQL نسخه 3.22.6 و بعد از آن موجود است.)

اگر فایل های متنی مورد نظر شما را بخوانید، در سرور، سپس به دلایل امنیتی، این فایل ها باید در دایرکتوری پایگاه داده قرار داده شوند یا به همه کاربران مراجعه شوند. علاوه بر این، برای اعمال دستورات بارگیری اطلاعات بارگیری به فایل های سرور، شما باید امتیازات فایل را برای میزبان سرور داشته باشید. بخش 4.2.7 امتیازات ارائه شده توسط MySQL را ببینید.

در نسخه های MySQL 3.23.49 و MySQL 4.0.2، فرمان محلی در مواردی که Daemon MySQLD با پارامتر Local-Infile \u003d 0 در حال اجرا است یا اگر مشتری امکان حمایت از محلی را فعال کند، کار نخواهد کرد. بخش 4.2.4 مسائل مربوط به ایمنی مربوط به فرمان داده های بار محلی را ببینید.

اگر کلمه کلیدی low_priority مشخص شود، پس از اجرای این فرمان داده بار، بازداشت خواهد شد تا مشتریان دیگر این جدول را کامل کنند.

اگر کلمه کلیدی همزمان هنگام کار با جداول MyISAM مشخص شود، سپس موضوعات دیگر می توانند داده ها را از جدول در طول فرمان داده بار بازیابی کنند. البته استفاده از این ویژگی، البته، کمی تحت تاثیر عملکرد داده های بار قرار می گیرد، حتی اگر هیچ موضوع دیگری از این جدول در همان زمان استفاده نکنید.

هنگام استفاده از گزینه محلی، اعدام می تواند کمی کاهش یابد در مقایسه با ارائه سرور دسترسی به فایل به طور مستقیم، از آنجا که محتویات فایل باید از میزبان مشتری به سرور حرکت کند. از سوی دیگر، در این مورد نیازی به امتیازات فایل برای دانلود فایل های محلی وجود ندارد.

هنگام استفاده از نسخه های MySQL به 3.23.24 با استفاده از فرمان اطلاعاتی بارگیری، شما نمی توانید از FIFO بخوانید. اگر شما نیاز به خواندن از FIFO (به عنوان مثال، خروجی استاندارد GUNZIP)، شما باید استفاده از داده های بارگیری محلی محلی.

شما همچنین می توانید فایل های داده را با استفاده از ابزار MySQLLimport آپلود کنید. این ابزار دانلود فایل ها را با ارسال سرور سرور فرماندهی اطلاعات بارگیری بارگیری می کند. گزینه OleCal باعث می شود MySQLimport فایل های داده را از یک میزبان مشتری بخواند. شما می توانید پارامتر -compress را مشخص کنید تا عملکرد بهتر را در هنگام کار از طریق شبکه های آهسته کار کنید، اگر مشتری و سرور از پروتکل فشرده سازی داده ها پشتیبانی می کنند.

در مواردی که فایل ها در سرور هستند، دومی با توجه به قوانین زیر عمل می کند:

  • اگر مسیر مطلق (کامل) به فایل مشخص شود، سرور از این مسیر بدون تغییر استفاده می کند.
  • اگر مسیر نسبی به فایل با یک دایرکتوری اولیه یا چندگانه مشخص شود، پس از آن جستجوی فایل مربوط به دایرکتوری های مشخص شده در دایرکتوری داده Datadir است.
  • اگر مسیر به فایل بدون مشخص کردن دایرکتوری های اولیه داده شود، سرور برای این فایل در پایگاه داده استفاده می شود دایرکتوری استفاده می شود.

این به شرح زیر است که فایل مشخص شده به عنوان `./myfile.txt از دایرکتوری سرور خوانده شده است، در حالی که فایل مشخص شده به عنوان` myfile.txt، از دایرکتوری پایگاه داده استفاده شده خوانده شده است. به عنوان مثال، داده های بارگذاری فرمان زیر فایل data.txt را در دایرکتوری پایگاه داده برای DB1 خوانده می شود، زیرا DB1 پایگاه داده فعلی است، حتی اگر این دستور به صراحت حاوی یادداشت برای دانلود فایل به جدول پایگاه داده DB2 باشد:

MySQL\u003e استفاده از DB1؛ MySQL\u003e بارگیری داده ها "data.txt" را به جدول db2.my_table؛

کلمات کلیدی جایگزین و نادیده گرفتن کنترل پردازش سوابق ورودی، که سوابق موجود را با همان مقادیر کلیدهای منحصر به فرد تکرار می کنند. اگر جایگزین را مشخص کنید، خطوط جدید با همان کلید منحصر به فرد جایگزین می شوند. اگر شما را نادیده بگیرید، خطوط ورودی دارای یک کلید منحصر به فرد مشابه موجود هستند، از بین می روند. اگر هیچ یک از پارامترها مشخص نشده باشد، هنگامی که مقدار کلید تکراری شناسایی می شود، یک خطا رخ می دهد و قسمت باقی مانده از فایل متنی نادیده گرفته می شود.

اگر داده ها از فایل محلی با استفاده از کلمه کلیدی محلی بارگیری شوند، سرور قادر به وقوع انتقال داده ها در وسط این عملیات نخواهد بود، بنابراین به طور پیش فرض، اجرای دستور، همان چیزی است که در مورد آن اتفاق می افتد توسط نادیده گرفتن نشان داده شده است.

هنگام استفاده از داده های بارگیری در جداول Myisam خالی، تمام شاخص های غیر منحصر به فرد در یک بسته جداگانه ایجاد می شوند (مانند در تعمیر). این معمولا به طور قابل توجهی سرعت کار بارگیری داده ها را در صورت تعداد زیادی از شاخص ها افزایش می دهد.

دستور داده های بارگیری داده ها اختیاری است که برای انتخاب ... به بیرون بروید. بخش 6.4.1 را انتخاب کنید نحو اپراتور. برای ضبط داده ها از پایگاه داده به فایل، را انتخاب کنید ... به Outfile استفاده می شود. برای خواندن داده ها به پایگاه داده، بارگیری اطلاعات را بارگیری می کند. زمینه های نحو و خطوط در هر دو تیم یکسان هستند. هر دو بخش اختیاری هستند، اما اگر هر دو مشخص شوند، سپس فیلدها باید از خطوط جلوگیری کنند.

اگر زمینه مشخص شده باشد، هر یک از موارد زیر (خاتمه یافته توسط، محصور شده و فرار کرده) نیز اختیاری است، اما لازم است حداقل یکی از آنها را مشخص کنید.

اگر بیانیه فیلد تعریف نشده باشد، به طور پیش فرض پارامترهای آن مقادیر زیر را دریافت می کند:

زمینه ها توسط "\\ t" محصور شده توسط "" فرار شده توسط "\\\\"

اگر بیانیه خطوط تعریف نشده باشد، پس به طور پیش فرض، ساختار زیر را دارد:

خطوط خاتمه یافته توسط "\\ n"

به عبارت دیگر، هنگامی که تاسیسات پیش فرض، پس از خواندن اطلاعات ورودی، دستورالعمل ورودی را به صورت زیر کار می کند:

  • جستجو برای انتهای ردیف ها به صورت نمادها `\\ n"
  • ردیف ها را به میدان ها بر اساس نمادهای برگه اسلاید کنید.
  • انتظار نداشته باشید که زمینه ها را می توان در نمادهای استناد قرار داد.
  • تفسیر زبانه های مواجهه شده، یک رشته جدید یا \\ "، ارائه شده` \\ "، به عنوان حروف الفبا که بخشی از ارزش میدان است.

و در مقابل، اگر تنظیمات پیش فرض در هنگام ضبط خروجی معتبر باشد، انتخاب ... به فرمان outfile به صورت زیر کار خواهد کرد:

  • زبانه ها را بین فیلدها قرار دهید.
  • در نمادهای استناد وارد شوید. از نمادهای `\\" برای محافظت از نمونه های زبانه ها، یک رشته جدید یا \\ "استفاده کنید، که در میان زمینه های زمینه ظاهر می شود.
  • نمادهای رشته جدید را در انتهای هر رکورد قرار دهید.

باید در ذهن داشته باشید که در ورود فیلدهای فرار شده توسط \\ "شما باید دو خط معکوس معکوس را برای ارزش مشخص کنید که باید به عنوان یک واکنش خوانده شود.

گزینه های خطی نادیده گرفتن می تواند مورد استفاده قرار گیرد برای نادیده گرفتن هدر نام ستون در ابتدای فایل:

MySQL\u003e بارگیری اطلاعات Infile "/ tmp / file_name" به تست جدول نادیده گرفتن 1 خط؛

هنگام استفاده از SELECT ... به بیرون همراه با داده های بارگیری داده ها به طوری که داده ها از پایگاه داده به عنوان خوانده شده به فایل، و سپس از فایل به پایگاه داده، گزینه هایی که زمینه ها را پردازش می کنند، باید برای هر دو دستورات هماهنگ شوند. در غیر این صورت، بارگیری اطلاعات بارگیری نمی تواند محتویات این فایل را به درستی تفسیر کند. فرض کنید فرمان Outfile Select ... برای نوشتن به یک فایل با زمینه های جدا شده توسط کاما استفاده می شود:

MySQL\u003e SELECT * FIELDS "data.txt" را از بین ببرید "،" از ...؛

MySQL\u003e بارگیری داده ها Infile "data.txt" به جدول جدول 2 فیلد خاتمه یافته توسط "،"؛

MySQL\u003e بارگیری داده ها infile "data.txt" به جدول جدول 2 فیلد خاتمه یافته توسط "\\ t"؛

یک نتیجه مشابه اتفاق می افتد اگر هر خط ورودی به عنوان یک فیلد جداگانه تفسیر شود.

Command Infile Data نیز می تواند برای خواندن فایل های به دست آمده از منابع خارجی استفاده شود. به عنوان مثال، فیلدهای در فایل فرمت پایگاه داده DBase توسط کاما جدا می شوند و در نقل قول های دوگانه محصور خواهند شد. اگر خطوط در این فایل به پایان برسد با نمادهای یک خط جدید، سپس برای ضبط فایل، می توانید از دستور زیر استفاده کنید که در آن تنظیمات گزینه ها، زمینه های پردازش و خطوط نشان داده شده است:

MySQL\u003e بارگیری داده ها Infile "data.txt" را به جدول TBL_NAME Fields متوقف شده توسط "،" محصور شده توسط "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" متوقف شده توسط "\\ n"؛

هر یک از زمینه های پردازش گزینه ها و رشته ها می توانند رشته خالی را تنظیم کنند (""). اگر رشته خالی نیست، سپس گزینه های زمینه های محصور شده توسط و زمینه های فرار شده توسط باید شامل یک شخصیت باشد. مقادیر زمینه هایی که توسط گزینه ها و خطوط متوقف شده اند، ممکن است بیش از یک شخصیت را متوقف کنند. به عنوان مثال، برای ضبط ردیف به پایان دادن به جفت `` برگردان بازگشت - ترجمه خط "" (به عنوان در MS DOS یا فایل های متنی ویندوز)، شما باید بیان زیر را مشخص کنید: خطوط متوقف شده توسط "\\ r \\ n".

ایجاد جوک های جدول (یک کلید اولیه null auto_increment اصلی، متن شوخی نیست نه صفر)؛ اطلاعات بارگیری داده ها "/tmp/jokes.txt" را به رشته های جوک های جدول متوقف شده توسط ""؛ خطوط خاتمه یافته توسط "\\ n ٪٪ \\ n" (جوک)؛

گزینه های محصور شده توسط Bula برای کنترل زمینه های محصور شده در کاراکترهای مشخص شده استفاده می شود. اگر به صورت اختیاری حذف شود، سپس در خروجی (انتخاب ... به Outfile) تمام فیلدها در کاراکترهای مشخص شده در محصور محصور شده اند. یک نمونه از چنین خروجی (که در آن کاما به عنوان جداساز میدان استفاده می شود) در زیر نشان داده شده است:

"1"، "یک رشته"، "100.20" "2"، "یک رشته حاوی یک، کاما"، "102.20" "3"، "یک رشته حاوی \\" نقل قول "،" 102.20 "" 4 "،" یک رشته حاوی \\ "نقل قول و کاما"، "102.20"

اگر پارامتر اختیاری مشخص شده باشد، تنها فیلدهای Char و Varchar در محصور شده توسط نماد برجسته شده اند:

1، "یک رشته"، 100.20 2، "یک رشته حاوی A، کاما"، 102.20 3، "یک رشته حاوی \\" نقل قول "، 102.20 4،" یک رشته حاوی \\ "، نقل قول و کاما"، 102.20

باید به خاطر داشته باشید که ظاهر کاراکترهایی که در داخل میدان محصور شده اند، با استفاده از پیشوند از فرار توسط آن محافظت می شود. همچنین باید به خاطر داشته باشید که اگر مقدار خالی در فرار مشخص شود، ممکن است یک خروجی ایجاد کنید که اپراتور بی نهایت اطلاعات را نمی توان به درستی بخوانید. به عنوان مثال، اگر نماد محافظ یک رشته خالی باشد، خروجی ارائه شده در بالا به عنوان زیر نشان داده شده است. توجه: میدان دوم در خط چهارم شامل کاما پس از نقل قول است که (به طور اشتباه) به نظر می رسد که این فیلد را محدود کند:

1، "یک رشته"، 100.20 2، "یک رشته حاوی A، کاما"، 102.20 3، "یک رشته حاوی" نقل قول "، 102.20 4،" یک رشته حاوی "، نقل قول و کاما"، 102.20

برای ورود به علامت محصور شده، اگر این است، از هر دو انتهای زمینه حذف شده است. (این درست است که بدون توجه به اینکه آیا پارامتر به صورت اختیاری یا نه به صورت اختیاری: هنگام کار با داده های ورودی، گزینه اختیاری در نظر گرفته نشده است.) اگر محصور شده توسط شخصیت محصور شده باشد، پیش بینی شده است، پس از آن تفسیر می شود بخشی از ارزش میدان فعلی. علاوه بر این، کاراکتر های دوگانه محصور شده توسط فیلدهای داخل میدان به عنوان کاراکتر های تک محصور شده توسط، اگر این فیلد با این نماد خود آغاز شود، تفسیر می شود. به عنوان مثال، اگر آن را با محصور شده توسط "" مشخص شود، سپس نقل قول ها پردازش می شوند، همانطور که در زیر نشان داده شده است:

"رئیس" بزرگ "-\u003e رئیس" بزرگ "رئیس" بزرگ "رئیس -\u003e رئیس" بزرگ "" بزرگ "رئیس -\u003e" "" بزرگ "رئیس

زمینه های فرار از گزینه برای کنترل ضبط یا خواندن کاراکترهای خاص استفاده می شود. اگر زمینه های فرار از شخصیت خالی نیست، آن را به عنوان پیشوند برای کاراکترهای زیر در خروجی استفاده می شود:

  • زمینه های نماد فرار کرد
  • زمینه های محصور شده توسط نماد
  • نماد اول از زمینه ها متوقف شده و خطوط متوقف شده توسط
  • ASCII 0 نماد (در واقعیت پس از نماد محافظ نوشته شده است ascii `0، و نه بایت با اندازه صفر)

اگر نماد زمینه ها توسط خالی فرار کرد، هیچ کاراکتر محافظت نمی شود. در حقیقت، هیچ معنایی برای مشخص کردن نماد محافظ خالی ندارد، به خصوص اگر زمینه های زمینه های داده شده در داده های پردازش شامل هر یک از کاراکترهای مشخص شده در لیست بالا باشد.

اگر فیلدهای فرار شده توسط شخصیت خالی نیست، سپس در مورد ورود اطلاعات ورودی چنین شخصیتی، نماد به معنای واقعی کلمه به عنوان بخشی از مقدار میدان ساخته شده است. استثنائات محافظت شده `0" یا n "(به عنوان مثال، \\ 0 یا \\ n، اگر نماد محافظ` \\) باشد. این توالی ها به عنوان ASCII 0 (BYTES با صفر مقادیر) و null تفسیر می شوند. زیر پردازش صفر را ببینید قوانین

برای به دست آوردن اطلاعات کامل تر در مورد نماد SHOULD SYMBLE `\\، به بخش 6.1.1 توجه کنید: ارائه ردیف ها و اعداد.

در برخی موارد، گزینه های پردازش زمینه و رشته های تعامل:

  • اگر خطوط متوقف شده توسط یک رشته خالی است و زمینه های خاتمه یافته توسط یک رشته خالی نیست، خطوط نیز به پایان می رسد با کاراکترها به پایان برسد.
  • اگر هر دو فیلد از بین رفته و زمینه های محصور شده توسط خالی (")، سپس یک فرمت خط ثابت اعمال می شود (بدون جداساز). در یک فرمت خط ثابت، هیچ جداساز بین زمینه ها ارائه نمی شود. در عوض، هنگام خواندن و نوشتن مقادیر ستون ها، ستون "خروجی" "ستون استفاده می شود. به عنوان مثال، اگر ستون به عنوان int (7) اعلام شود، مقادیر این ستون با استفاده از زمینه های 7 کاراکتر نوشته شده است. مقادیر ورودی برای این ستون با خواندن 7 کاراکتر به دست می آید. فرمت با رشته ثابت نیز بر پردازش مقادیر صفر تاثیر می گذارد (نگاه کنید به زیر). توجه داشته باشید که فرمت اندازه ثابت هنگام استفاده از مجموعه چند منظوره از شخصیت ها کار نخواهد کرد.

مقادیر null بسته به زمینه ها و گزینه های خطوط استفاده می شود متفاوت خواهد بود:

  • به طور پیش فرض، مقادیر زمینه ها و خطوط صفر به عنوان \\ n برای خروجی نوشته شده است و \\ n به عنوان NULL برای ورودی خوانده می شود (بر اساس فرضیه ای که توسط نماد فرار می کند \\ ").
  • اگر زمینه های محصور شده توسط خالی نباشد، سپس فیلد که ارزش آن یک کلمه از حروف null است، به عنوان یک مقدار صفر می نویسد (بر خلاف کلمه خالی که بین کاراکترهای محصور شده، که به عنوان رشته "null" خوانده می شود، خوانده می شود.
  • اگر فیلدهای فرار شده توسط خالی باشد، صفر به عنوان کلمه خالی نوشته شده است.
  • در یک فرمت رشته ثابت (که در صورتی صورت می گیرد، اگر هر دو مشخص کننده از بین بروند و زمینه های محصور شده توسط - خالی هستند)، صفر به عنوان یک رشته خالی نوشته شده است. توجه داشته باشید که به عنوان یک نتیجه، مقدار صفر و یک رشته خالی در این جدول در هنگام نوشتن به یک فایل غیر قابل تشخیص است، زیرا هر دو به عنوان رشته های خالی ثبت می شوند. اگر لازم است که این مقادیر هنگام خواندن خواندن فایل متفاوت باشند، نباید از فرمت با یک رشته ثابت استفاده کنید.

برخی از موارد با استفاده از اپراتور نوزادان بارگیری پشتیبانی نمی شوند:

  • ردیف ها با یک اندازه ثابت (هر دو گزینه توسط و فیلدهای محصور شده توسط خالی) و حباب یا ستون های متن متوقف می شوند.
  • اگر جداساز مشخص شده باشد، که با یکی دیگر از آنها یا پیشوند دیگر همخوانی دارد، اطلاعات بارگذاری داده ها قادر به تفسیر ورودی به درستی نیست. به عنوان مثال، تأیید زمینه های زیر باعث مشکلات می شود: فیلدها توسط "" محصور شده توسط ""
  • اگر زمینه Escapad با گزینه خالی، سپس زمینه های محصور محصور شده در این زمینه، مورد فیلدهای محصور شده توسط یا خطوط متوقف شده توسط، و پس از آن زمینه هایی که توسط نماد متوقف می شود، منجر به تکمیل زودرس از خواندن یا رشته فیلد می شود دستور اطلاعات بارگیری این به خاطر این واقعیت است که بارگیری داده ها را به درستی نمی توان تعیین کرد که در آن زمینه یا رشته به پایان می رسد.

مثال زیر تمام ستون های جدول Persondata را دانلود می کند:

MySQL\u003e بارگیری داده ها "persondata.txt" را به میز Persondata؛

فهرست فیلدهای مشخص نشده است، بنابراین، فرمان داده های بارگیری، انتظار می رود رشته های ورودی برای پر کردن هر ستون جدول. این از زمینه های پیش فرض و مقادیر خطوط استفاده می کند.

اگر می خواهید فقط برخی از ستون های جدول را دانلود کنید، باید لیست ستون ها را مشخص کنید:

MySQL\u003e بارگیری داده ها "persondata.txt" را به میز Persondata (Col1، Col2، ...)؛

لیست زمینه ها باید در مواردی مشخص شود که آیا ترتیب فیلدهای موجود در فایل ورودی از دستور ستون ها در این جدول متفاوت است. در غیر این صورت، MySQL قادر به تنظیم مکاتبات فیلدهای تزریقی و ستون های جدول نخواهد بود.

اگر رشته دارای چندین زمینه باشد، سپس ستون هایی که هیچ فیلد در فایل ورودی وجود ندارد، به مقادیر پیش فرض آنها تنظیم می شوند. تخصیص پیش فرض در بخش 6.5.3 شرح داده شده است STANTAX اپراتور جدول.

ارزش میدان خالی متفاوت از عدم وجود ارزش است:

  • برای انواع رشته، ستون در یک رشته خالی نصب شده است.
  • برای انواع عددی، ستون به 0 تنظیم شده است.
  • برای نوع و نوع زمان، ستون به نوع مربوطه `` صفر تنظیم شده است. بخش 6.2.2 داده ها و انواع داده ها را ببینید.

توجه داشته باشید که اینها مقادیر مشابهی هستند که در یک نتیجه از یک تجسم صریح یک رشته خالی توسط ستون های رشته، انواع عددی، یا تاریخ یا نوع زمان در فرمان وارد شده یا به روز رسانی خواهد بود.

ستون های Timestamp فقط در تاریخ یا زمان فعلی نصب می شوند که در مواردی که مقدار صفر به ستون اختصاص داده می شود یا (فقط برای اولین ستون Timestamp) قرار می گیرد، اگر ستون Timestamp از لیست فیلدهای خارج شود، اگر چنین لیست مشخص شده باشد.

اگر خط ورودی دارای میدان های زیادی باشد، زمینه های غیر ضروری نادیده گرفته می شوند و تعداد هشدارها افزایش می یابد.

دستور NOW Data Infile تمام ورودی ها را به عنوان خطوط تفسیر می کند، بنابراین شما نمیتوانید مقادیر عددی را برای enum یا تنظیم ستون ها و همچنین برای دستورات قرار دهید. تمام مقادیر Enum و Set باید به عنوان ردیف مشخص شوند!

هنگام استفاده از API C، می توانید اطلاعات مربوط به درخواست را با فراخوانی تابع MySQL_INFO () API () در انتهای پرس و جو اطلاعات بارگیری بارگیری دریافت کنید. در زیر فرمت رشته اطلاعات برای این مورد است:

سوابق: 1 حذف شده: 0 Skipped: 0 هشدار: 0

هشدارها تحت شرایط مشابه همانطور که هنگام ضبط مقادیر در Insert صادر می شود (به بخش 6.4.3، نحو اپراتور وارد کنید) صادر می شود، به جز اینکه دستور داده های بارگذاری داده ها علاوه بر این، هشدارها را تولید می کند، زمانی که تعداد کمی یا بیش از حد بسیاری از زمینه ها در ورودی تولید می شود ردیف هشدار در هر جایی ذخیره نمی شود تعداد هشدارها تنها می تواند مورد استفاده قرار گیرد تا بررسی شود که آیا اقدامات مشخص شده به طور معمول انجام می شود. اگر شما نیاز به دقت بدانید دلایل هشدارها، شما باید دستور select را انتخاب کنید ... iNo Outfile را به یک فایل دیگر اجرا کنید و نتیجه را با فایل ورودی اصلی مقایسه کنید، تنها راهی برای دریافت چنین اطلاعاتی است.

اگر شما نیاز به اجرای داده های بار برای خواندن از کانال دارید، می توانید ترفند زیر را اعمال کنید:

mkfifo / mysql / db / x / x chmod 666 / mysql / db / x / x cat / nt / mysql / db / x / x mysql -e "بارگیری اطلاعات Infile" X "به جدول X" X

هنگام استفاده از نسخه MySQL قدیمی تر از 3.23.25، می توان فوق را تنها با داده های بارگذاری محلی محلی انجام داد.

برای به دست آوردن اطلاعات دقیق تر در مورد بهره وری درج در مقایسه با داده های بارگیری و افزایش سرعت بارگیری اطلاعات بار، به بخش 5.2.9 سرعت نمایش داده شده را ببینید.

نظرات کاربر

نوشته شده توسط جیسون تیتوس[حذف] [ویرایش]

"هشدارها در هر نقطه ذخیره نمی شوند؛ تعداد هشدارها تنها می تواند به عنوان یک استفاده شود
نشانه اگر همه چیز خوب بود

شما با من شوخی می کنید. آیا این به نوعی مجازات DBA انجام می شود؟ I.E. - ما
بدانید که مشکلات چیست، اما شما فقط باید یک فایل خروجی ایجاد کنید و از طریق آن نگاه کنید
میلیون ها سوابق خود را برای پیدا کردن آنها. "آیا MySQL برای قرار دادن این در errorlog استفاده می شود،
جایی که آنها تعلق دارند؟ برو جلو و آن را یک گزینه، اما این به اندازه کافی مشکل است
من به اوراکل برگشتم (و آن را طول می کشد).

ارسال شده توسط کمپبل در جمعه 17 مه 2002، @ 6: 24 صبح[حذف] [ویرایش]

دوم این (!) من نمی فهمم چطور؟
نوشتن آن را با یک چهره مستقیم بنویسید.

ارسال شده توسط Jonathon Padfield در جمعه 17 مه 2002، @ 6: 24 صبح[حذف] [ویرایش]

همچنین، هیچ اطلاعاتی در مورد ردیف ها از بین نمی رود
داده شده است.

ارسال شده توسط جمعه 17 مه 2002، @ 6: 24 صبح[حذف] [ویرایش]

این ویژگی در هنگام ارسال یک مفید است
از یک صفحه وب وارد کنید اگر کاربر بازدید کند
تازه کردن و بازپرداخت داده های فرم که منجر به یک
قرار دادن بعدی همان داده های کلیدی اولیه
رونق، برنامه شکسته می شود. به این ترتیب، کاربر می تواند
آمار F5 تا صورت خود آبی و
به دست آورد "T را شکستن بیانیه جایگزین.

[حذف] [ویرایش]

من یک پوشه MyDB در C: \\ MySQL \\ Data دارم
من Data.txt را جایی قرار می دهم و وقتی که من اجرا می کنم
بارگیری اطلاعات محلی infile "data.txt" را به جدول
MyTable می گوید: فرمان با موفقیت اجرا شده است
اما هیچ ارزشی به MyTable اضافه نمی شود.
من تحت W2K هستم

ارسال شده توسط Van Hoof Philip در جمعه 17 مه 2002، @ 6: 24 صبح[حذف] [ویرایش]

من می خواهم پایگاه داده های خود را با دیگری همگام سازی کنم
پایگاه داده از زمان به زمان. این به این معنی است که من
باید از جایگزینی استفاده کنید. اما درباره چه چیزی
سوابق که هیچ "Excift Anylonger در جدیدتر"
پایگاه داده آیا آنها در mysql حذف خواهند شد؟
آیا راهی برای حذف آن ها وجود دارد؟ یا این است
تنها راه حل برای رها کردن جدول MySQL من و بازسازی
قبل از شروع بارگذاری "آن را. من از crontab استفاده می کنم
اسکریپت ها برای این عملیات بنابراین هیچ تعامل انسان وجود ندارد
ممکن است در طول این عملیات امکان پذیر باشد

ارسال شده توسط جمعه 17 مه 2002، @ 6: 24 صبح[حذف] [ویرایش]

مستندات در مورد آنچه مشخص نیست
یک کلید / شاخص "منحصر به فرد" در این زمینه را تشکیل می دهد. آی تی.
backreferences به "insert"، اما insert 't
چنین محدودیتی داشته باشید من متوجه شدم که اولیه
کلیدها به اندازه کافی منحصر به فرد هستند، اما من باید اضافه کنم
مقدماتی که من آنها را نمی خواهم. شاید من "m
از دست دادن چیزی ....

ارسال شده توسط جمعه 17 مه 2002، @ 6: 24 صبح[حذف] [ویرایش]

این بسیار ناامید کننده است که هشدارها را هنگامی که یکی است دریافت کند
وارد کردن داده ها به پایگاه داده MySQL و نه
قادر به دسترسی به هر گونه اطلاعاتی در مورد هشدارها.
MySQL واقعا نیاز به اضافه کردن یک ویژگی است که خواهد شد
گزارش یک هشدار در مورد به جای آن فقط
گزارش هشدار ایده اطلاعات در مورد
هشدار باید بلافاصله ارائه شود. در
این: حداقل نوعی خطای خطا باید باشد
ایجاد شده از یک کاربر می تواند دسترسی داشته باشد.

ارسال شده توسط جمعه 17 مه 2002، @ 6: 24 صبح[حذف] [ویرایش]

در "F5 تا چهره خود را تبدیل به" موضوع ...

این Shald در برنامه کار می کند. آی تی.
مطمئنا صدمه زدن به کاربر نیست، "شما"
قبلا وارد این شد لطفا طراوت را متوقف کنید. "

در واقع، با توجه به تعداد انتهایی hyperimpatient
این ها را از آنجا بیرون می آورند، این به خصوص مانند آن است
ایده خوبی است.

نوشته شده توسط لری ایروین در روز سه شنبه اوت 20 2002، @ 11: 50 صبح[حذف] [ویرایش]

این بسیار مفید خواهد بود که یک گزینه اضافی داشته باشد
به "نادیده گرفتن محدودیت" در هنگام بارگیری
روند.

ارسال شده توسط روز پنج شنبه 5 سپتامبر 2002، @ 1: 34AM[حذف] [ویرایش]

گرفتن "در یک میز Myisam خالی، همه
شاخص های غیر منحصر به فرد در یک دسته جداگانه ایجاد می شوند
از آنجا که مکانیسم استفاده شده، "تعمیر با آن" است
keycache "که می تواند بسیار آهسته باشد، اگر تعداد زیادی داشته باشید
شاخص ها یکی واقعا نیاز به استفاده از مکانیسم دارد
کلید های متوقف شده ایجاد شده و پس از آن تعمیر با
myisamchk با استفاده از "تعمیر با مرتب سازی" به عنوان شرح داده شده در
بخش 5.2.9 (اگر بتوانید آن را به کار ببرید :-()

ارسال شده توسط روز چهارشنبه اکتبر 9 2002، @ 12: 43PM[

آیا تا به حال باید داده ها را از فایل به جدول از فایل دانلود کنید؟ اگر نه، پس من سعی خواهم کرد به طور خلاصه به شما در مورد یک راه برای انجام این کار بگویید.

داده ها را به جدول از فایل دانلود کنید

بارگیری اطلاعات Infile "data.csv" به جدول my_table این طراحی به شما کمک خواهد کرد که داده ها را از فایل به جدول خود دانلود کنید.

اگر میخواهید داده های فرمت شده را دانلود کنید، می گویند semicolons جدا شده، سپس طراحی بعدی به شما کمک خواهد کرد:

بارگیری داده ها "data.csv" را به جدول فیلدهای my_table خاتمه یافته اند.توسط "،" محصور شده توسط "" "فرار کرد "\\" خطوط خاتمه یافته توسط "\\ r \\ n"
این یعنی چی؟

  • جستجو برای انتهای ردیف ها به صورت شخصیت "\\ r \\ n"
  • خطوط دوخت در نمادهای سمیکالن (،).
  • انتظار می رود که زمینه ها را می توان در نمادهای استناد قرار داد.
  • تفسیر زبانه های مواجهه شده، یک ردیف جدید یا "\\" ارائه شده "\\"، به عنوان ادبیات که بخشی از ارزش میدان هستند.

بارگیری اطلاعات دیافراگم

همه آنچه که ما در بالا توضیح دادیم، طراحی اطلاعات مربوط به بارگیری معروف است.

دسترسی به خطای کاربر انکار شد

اگر ناگهان یک خطا دارید دسترسی برای کاربر امکان پذیر نیستسپس شما فقط نیاز به اضافه کردن یک ویژگی محلیقبل از نوزادمثلا:

بارگیری داده های محلی infile "data.csv" به جدول my_table

دانلود داده ها به جدول از فایل برای زمینه های خاص

بارگیری داده های ورود به سیستم محلی "data.csv" را به جدول T1 بر اساس "،" خطوط متوقف شده توسط "\\ n" (@ col1، @ col2، @ col3، @ col4) نام [ایمیل محافظت شده] COL4، ID. [ایمیل محافظت شده] COL2؛

در اینجا نام فایل (data.csv) را مشخص می کنیم که از آن داده ها بارگذاری می شوند. در طراحی (@ col1، @ col2، @ col3، @ col4) ما تمام ستون های فایل را برای استفاده بیشتر از آنها برآورده می کنیم. و سپس با کمک یک روش آشنا، ما مقادیر این ستون ها را برای زمینه های خاص میدان تعیین می کنیم.

بارگیری داده ها را با پیوستن به

اگر شما نیاز به پر کردن یک جدول از یک فایل با استفاده از یک موجود، احتمالا بلافاصله برای استفاده از آن رخ می دهد پیوستن.کد برای چنین قرار دادن داده ها به نظر می رسد:

بارگیری داده های ورود به سیستم محلی "data.csv" به جدول جدول table_1 فیلد متوقف شده توسط "\\ t" خطوط متوقف شده توسط "\\ r \\ n" (@ col1، @ col2، @ col3، @ col4) تنظیم شده است [ایمیل محافظت شده]، username \u003d (نام کاربری را از کاربران انتخاب کنید که کاربر @ @ col1)؛

زنگ.

کسانی هستند که این خبر را قبل از شما خوانده اند.
مشترک شدن برای دریافت مقالات تازه.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید زنگ را بخوانید
بدون هرزنامه