小编use*_*288的帖子

得到朋友的随机朋友相互计数

我有一个用户和一个朋友表.具有用户详细信息的用户和朋友拥有用户的朋友.这是用户表的架构..

create table smsusers(
  id varchar(60),
  password varchar(50) not null,
  fname varchar(30) not null,
  lname varchar(30),
  mailid varchar(50) not null,
  gender varchar(10) not null,
  primary key(id)
);
Run Code Online (Sandbox Code Playgroud)

和朋友表..

create table friends_list(
  friend_of varchar(60) NOT NULL,
  friends_id varchar(60) NOT NULL,
  friendship_status varchar(30),
  friendship_date timestamp NOT NULL,
  primary key(friend_of,friends_id),
  foreign key(friend_of) references smsusers(id)
  ON DELETE CASCADE ON UPDATE CASCADE);
Run Code Online (Sandbox Code Playgroud)

用户照片

create table profile_pic(pic_id varchar(200),profile_pic_path varchar(1000),small_pic_path varchar(1000),
adddate varchar(100),userid varchar(60),foreign key(userid) references smsusers(id) ON DELETE CASCADE ON UPDATE CASCADE,
primary key(pic_id));
Run Code Online (Sandbox Code Playgroud)

在这里,我想和朋友一起取朋友的随机5朋友

我试过这个查询 …

mysql

5
推荐指数
1
解决办法
224
查看次数

如何在现有表中添加外键约束

我有2个表首先是smsusers(id,fname,lname,userid) 'id'是主键, userid是唯一键

address_detail(id,address,type);
Run Code Online (Sandbox Code Playgroud)

在这里我要补充useridsmsusers是外键address_detail表.

因为我添加了一列address_detail作为user_id

ALTER TABLE address_detail add user_id INT( 20 )  default NULL;
Run Code Online (Sandbox Code Playgroud)

现在我正在向表中添加外键约束

ALTER TABLE `address_detail` add CONSTRAINT address_detail_fk FOREIGN KEY (user_id) 
REFERENCES smsusers ('userid') ON UPDATE CASCADE ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

此步骤显示以下错误

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server
version for the right syntax to use near ''userid') ON 
UPDATE CASCADE ON DELETE …
Run Code Online (Sandbox Code Playgroud)

mysql

2
推荐指数
1
解决办法
2万
查看次数

如何更改表的主键

我想更改表的主键,最初是id,现在我想将其更改为userid

   smsusers(id,fname,lname,userid)
Run Code Online (Sandbox Code Playgroud)

这里 id 是 varchar 类型 adn userid 是 int 类型

为此,我正在尝试以下查询

 ALTER TABLE smsusers DROP PRIMARY KEY
Run Code Online (Sandbox Code Playgroud)

这是显示这个错误

#1025 - Error on rename of '.\xrcwrn_sms\#sql-ae0_6f' to 
'.\xrcwrn_sms\smsusers' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

idofsmsusers作为外键与许多表相关联。

如何更改主键。

mysql

1
推荐指数
1
解决办法
2483
查看次数

标签 统计

mysql ×3