如果我在查询时没有在任何地方使用自动增量主键,那么在表中使用它有什么用呢?
例如,我有一个表单,用户在其中注册自己的userid/passwd等,一个表填充如下。
user table
id int auto increment primary key
userid unique key
passwd varchar
etc
etc
每当我检查登录用户或任何其他查询时,我总是在那里使用select * from tbname where userid = ?,我有一个惟一的索引,那么在id列上使用主索引有什么用呢?
也会有速度上的差异吗?
编辑:我的userid实际上是一个用户名,选择我注
我有一张有70行的表格。出于学习/测试的目的,我为每一行编写了一个查询。所以我写道:
SELECT * FROM MyTable WHERE id="id1";
SELECT * FROM MyTable WHERE id="id2";
/*etc*/
SELECT * FROM MyTable WHERE id="id70";
并在Sequel Pro中运行它。所有的查询总共花了5秒钟。自从我读到MySQL有一个叫做的特性以来,似乎已经有很长一段时间了。它看起来像是一个查询缓存,如果它这么慢,那就没有什么用了,我还不如在数据库层和前端之间编写我
我有一个计数表,当重命名一个复合密钥字段时,我希望能够对计数进行求和。这很难解释,所以让我向您展示一些SQL:
示例表:
CREATE TABLE `test` (
`id` int(11) NOT NULL,
`type` int(11) NOT NULL,
`count` int(11) NOT NULL,
PRIMARY KEY (`id`,`type`)
);
插入一些数据:
INSERT INTO test VALUES(1, 10, 1);
INSERT INTO test VALUES(2, 20, 3);
INSERT INTO test VALUES(2, 1
我只是不知道它们是干什么用的。以前我以为它们是为了轻松地填充外键,但现在我发现情况并非如此。
# User attributes: id, name, password
factory :user_0, class: User do
id 0
name "Jimmy"
password "Jimson"
end
# Status attributes: id, user_id, content
factory :user_0_statuses, class: Status do
association :user, factor
我对数据库的概念非常陌生,目前正在学习如何设计数据库。我有一张表,下面有几列...
这是在mysql中:
1. Names - text - unique but might change in future
2. Result - varchar - not unique
3. issues_id - int - not unique
4. comments - text - not unique
5. level - varchar - not unique
6. functionality - varchar - not unique
我不能选择上述任何列作为主键,因为它们将来可能会更改
我的托管公司希望我从MySQL 4服务器迁移到MySQL 5.5服务器。我的数据库相对较大,因为我的网站上有近200,000+注册用户的数据。
我使用PHPMyAdmin导出了我所有的表,现在我正尝试将它们导入到新服务器中。在我尝试导入“user”表之前,一切都很顺利。对于信息,它的结构如下:
CREATE TABLE IF NOT EXISTS `user` (
`login` varchar(32) NOT NULL DEFAULT '',
`firstname` varchar(255) NOT NULL DEFAULT '',
`lastname` va