我需要在Java中创建一些唯一文件,我计划使用UUID.randomUUID生成它们的名称.有没有机会为此发生碰撞?我应该做一些像bellow os我不应该担心的事情吗?
Integer attemptsToGenerateUUID = 1;
while (true) {
UUID fileUUID = UUID.randomUUID();
if (fileDoesNotExistwith this UUID name) {
save file;
break;
}
attemptsToGenerateUUID += 1;
if (attemptsToGenerateUUID > 64) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的Django对象获取唯一的ID.在Django 1.8中,他们拥有UUIDField.我不确定如何使用此字段为我的模型中的每个对象生成唯一的ID.
这是我对UUIDField的看法
import uuid
from django.db import models
class MyUUIDModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
class Person(models.Model):
...
unique_id = MyUUIDModel()
Run Code Online (Sandbox Code Playgroud)
我可以重现UUID模型的id,但每次我都会得到完全相同的id.:(. 例如:
person = Person.objects.get(some_field = some_thing)
id = person.unique_id.id
Run Code Online (Sandbox Code Playgroud)
id然后每次给我相同的id.有什么问题,我该如何解决这个问题?谢谢您的帮助!
我正在尝试替换一个调用,::CoCreateGUID因此我可以在Linux上的C++程序中生成GUID.
我对Ubuntu/GCC/Linux有点新意,所以我开始这样:
#include <uuid/uuid.h>
Run Code Online (Sandbox Code Playgroud)
而现在我被卡住了!:) G ++找不到uuid.h,我不知道如何获取/找到它.
有人说UDID (Unique Device IDentifier),有人说UUID (Universally Unique IDentifier).它们是否相同?它们之间有什么区别?
Laravel str_random()函数是否足够随机,以便我可以将其用于ID?
例如:
str_random(32);
Run Code Online (Sandbox Code Playgroud)
这将生成一个长度为32的随机字符串,由字母数字字符组成[a-zA-z0-9](总共62个字符).
这相当于2272657884496751345355241563627544170162852933518655225856的可能性.
但是,我的问题是,这是否足够好?或者我应该考虑使用UUID或其他自定义功能.
我有一个uuid字段(不是主键).生成的迁移是:
from __future__ import unicode_literals
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
....
]
operations = [
...
migrations.AddField(
model_name='device',
name='uuid',
field=models.UUIDField(default=uuid.uuid4, unique=True),
),
...
]
Run Code Online (Sandbox Code Playgroud)
但是当python manage.py migrate它做的时候崩溃:
django.db.utils.IntegrityError:无法创建唯一索引"restaurants_device_uuid_key"DETAIL:Key(uuid)=(f3858ded-b8e0-4ac0-8436-8a61b10efc73)重复.
奇怪的是,主键(它可能是由数据库创建的,而不是由django内部创建的)似乎不会出现问题.
如何添加uuid字段,并确保迁移有效?
virtualbox - 如何检查vdi的uuid是什么?
VBoxManage上应该有一些命令行来显示它.
我知道我在文档中读到了一些地方,但现在由于某种原因我找不到它......
帮助任何人?
是否可以将GUID用作SQLITE数据库中的主键?如果可以,可以使用哪种数据类型?