如果我的表有id,name两个字段,id自增。插入的时候只需这样:
insert
into
tablename(name)
values('zhangsan')//id会自动有值
如果你没有自增,那就要指明字段了:
insert
into
tablename(id,name)
values(1,'zhangsan')//id不会自动有值
首先可以先更改两个表的diarygpid 为一样的值,建议该值要大一点,既>diarygp.diaryid的最大值,同时也>diarynum.diaryid的最大值,最好类型bigint,我们这里假定是1000吧,那么把两个表的自动增长值设为1001,这样做的目的是防止插入是出现重复diarygpidALTER TABLE `diarygp` AUTO_INCREMENT = 1001
ALTER TABLE `diarynum` AUTO_INCREMENT = 1001
//建立存储过程
DELIMITER $$
PROCEDURE `AddAccount`(_diaryname varchar(20), _uid varchar(20), diarynum int )
BEGIN
declare newID bigint
insert into diarygp (diaryname) values (_diaryname )
select diaryid into newID from diarygp order by diaryid desc limit 1
insert into diarynum ( diaryid,uid,diarynum ) values (newID, _uid, _diarynum)
end $$
DELIMITER
php执行存储过程
<?php
//注意,sql为存储过程时,要使用这两个1,CLIENT_MULTI_RESULTS 参数
$Conn = mysql_connect("Host", "Uid", "Pwd",1,CLIENT_MULTI_RESULTS)
//sql
$SQL = "AddAccount('name','_uid',2222)"
mysql_query($SQL,$Conn)
mysql_close($Conn)
?>
在命令行里面打入mysql -u root -p 然后回车 它会提示你输入密码
输完密码进入mysql后 会出现这样的提示符
mysql->这里输入 use 你的test表所在的库 --别忘记封号
然后 执行 INSERT INTO test (a,b,c) VALUES (1,2,3)
这句话的前提是这样的你的test表含有 a列 b列 c列
然后对应 a b c列插入一行值为 1,2,3的值
当然你可以这么些
insert test(a,b,c) select 1,2,3
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)