CREATE PROCEDURE proc_nameASbegin select aaid,bbid,aname,btitle from a,b where aaid=baidend
在mysql中,每个数据库最多可创建20亿个表,一个表允许定义1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度)。当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的数据行超过8092字节时将导致Transact-SQL语句失败,并产生错误信息。SQL
Server对每个表中行的数量没有直接限制,但它受数据库存储空间的限制。每个数据库的最大空间1048516TB,所以一个表可用的最大空间为1048516TB减去数据库类系统表和其它数据库对象所占用的空间。
一般没有人这么做的,因为文件一般都比较大。试想一下你的一个大小为20KB,你有5000张这样的,那你的要消耗的就是100MB,而存放到数据库的大小肯定超过100MB,而且数据库对的提取对系统的消耗是很大的。
建议的做法是用一个字符串存储的路径,当然你还可以通天其他字段写上的大小啊什么的属性。如:表名为image img_id int(8) unsigned;img_dir varchar(100);img_weight float(6);img_height float(6);这样你就可以通过查询这几个字符串从而得到了。
如果你非要用数据库保存的话,mysql好像也确实提供了可以存储的格式,具体什么去查一下mysql帮助文档吧,我也既不清楚了。
GOOD LUCK!!!
插入到数据库不是个好方法,如果你确实要存储到数据库的话,修改你的sql语句,不可以直接插入的。例如:
INSERT into person(p_id,p_name,p_sex,p_age) value("asdsadssdsadfff","addsdsa","dddd",113);
update person set p_image = LOAD_FILE('D:\incident1jpg') where p_id = "asdsadssdsadfff";
建议把'D:\incident1jpg'放在mysql的安装目录里面,避免权限问题。。。
解释:sql必须要有对 'D:\incident1jpg'文件 和相应的路径 读权限,要不也不可以的。 另外检查LOAD_FILE 函数是否被禁用。这个函数是个危险的函数,很容易利用该函数对数据库攻击。
LOAD_FILE(file_name):
读取file_name文件 并以字符串形式返回,使用这个函数时,file_name必须存在于服务器上,而且是完整路径,sql要具有file_name的读取权限,还有该文件的size必须小于数据库 max_allowed_packet的值,否则读取的值为空。如果文件不存在或者sql没有读权限,那么该函数讲返回null
以上就是关于如何在mysql数据库中建立一个存储过程全部的内容,包括:如何在mysql数据库中建立一个存储过程、mysql数据库可以存储多少数据量、有谁知道如何把一图片存放到mysql数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)