استيراد BLOBs من CSV إلى جدول SQLite

0

كيف يمكنني وضع UUIDs في ملف CSV من أجل إنشاء SQLite .import الأمر لتحميلها في الجدول كما BLOBS 128 بت؟

2 الاجابة

2
افضل جواب

وبقدر ما أعرف ، فإن الطرق الوحيدة لتوليد نقطة من قذيفة sqlite3 تستخدم zeroblob() ، randomblob() و readfile() وظائف sql ، CAST جي قيمة ، أو كحرف أساس 16 نقطة ( X'1234ABCD' ).

إذا كانت معرفات UUID الخاصة بك ممثلة بالفعل كأرقام ثنائية 128 بت نهائية كبيرة في ملف CVS ، فقد تتمكن من القيام بشيء مثل UPDATE table SET uuid = CAST(uuid AS BLOB); بعد الاستيراد. إذا كانت تمثل نصًا مثل 123e4567-e89b-12d3-a456-426655440000 ، يمكنك كتابة دالة معرفة من قبل المستخدم لإجراء التحويل ، واستخدامها مع ما بعد الاستيراد المشابه UPDATE .

:مؤلف
0

SQLite غير قادر على استيراد BLOBs من CSV.

الحل هو تحويل CSV إلى ملف عبارة SQL وتنفيذه:

sqlite3 database.db < database.sql

إذا كنت تبث من تطبيق ، 100000 -القطع المقطوعة هي الكمية المثلى لكل مثيل عملية.

إذا حاولت ضخ الكثير من الجيجابايت في وقت واحد ، sqlite3 سوف تحطم مع Out of memory خطأ.

:مؤلف
فوق
قائمة طعام