
文档解释
Error number: 3178; Symbol: ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN; SQLSTATE: HY000
Message: ADD COLUMN col…VIRTUAL, ADD INDEX(col)
错误说明:
ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN错误指示在虚拟列上不支持使用ALTER TABLE语句进行在线修改。mysql报出此错误,表明在更改表结构时尝试使用在线表修改,但此操作对虚拟列是不可行的。
常见案例
常见的场景是在更新表结构时忘记考虑改变虚拟列的情况,因此会忽略使用ALTER TABLE语句的在线修改功能;而忘记删除虚拟列,则会出现该错误,例如尝试用ALTER TABLE DROP COLUMN语句删除虚拟列。
解决方法:
由于MySQL不支持在线更新虚拟列,因此当在修改表结构时必须为虚拟列提供离线修改的解决方案,即在ALTER TABLE DROP COLUMN语句的前面先创建一个新表,取消加入虚拟列;然后将原始表的记录从新表中插入,最后将新表重新命名为原来表的名字。
香港美国云 服务器 首选树叶云,2H2G首月10元开通。树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
信号量的使用,求助
信号量:一个整数;大于或等于0时代表可供并发进程使用的资源实体数;小于0时代表正在等待使用临界区的进程数;用于互斥的信号量初始值应大于0;只能通过P、V原语操作而改变;信号量元素组成:1、表示信号量元素的值;2、最后操作信号量元素的进程ID3、等待信号量元素值+1的进程数;4、等待信号量元素值为0的进程数;二、主要函数 1.1 创建信号量int semget(key_t key, //标识信号量的关键字,有三种方法:1、使用IPC——PRIVATE让系统产生,// 2、挑选一个随机数,3、使用ftok从文件路径名中产生int nSemes, //信号量集中元素个数int flag //IPC_CREAT;IPC_EXCL 只有在信号量集不存在时创建)成功:返回信号量句柄失败:返回-1 1.2 使用ftok函数根据文件路径名产生一个关键字key_t ftok(const char *pathname,int Proj_id);路径名称必须有相应权限1.3 控制信号量int semctl(int semid, //信号量集的句柄int semnum, //信号量集的元素数int cmd, //命令/*union senum arg */... // )成功:返回相应的值失败:返回-1 命令详细说明:cmd: IPC_RMID 删除一个信号量IPC_EXCL 只有在信号量集不存在时创建IPC_SET 设置信号量的许可权SETVAL 设置指定信号量的元素的值为 获得一个指定信号量的值GETPID 获得最后操纵此元素的最后进程IDGETNCNT 获得等待元素变为1的进程数GETZCNT 获得等待元素变为0的进程数 union senum 定义如下:union senum{int val;struct semid_ds *buf;unsigned short * array;}agc;其中 semid_ds 定义如下:struct semid_ds{struct ipc_pem sem_pem; //operation pemission structtime_t sem_otime; //last semop()timetime_t sem_ctime; //last time changed by semctl()struct sem *sembase; //ptr to first semaphore in arraystruct sem_queue *sem_pending; //pending operationsstruct sem_queue *sem_pending_last; //last pending operationsstruct sem_undo *undo; //undo requests on this arraryunsigned short int sem_nsems; //number of semaphores in set}; 1.4 对信号量 +1 或 -1 或测试是否为0int semop(int semid, struct sembuf *sops, //指向元素操作数组unsigned short nsops //数组中元素操作的个数) 结构 sembuf 定义sembuf{short int sem_num; //semaphore numbershort int sem_op; //semaphore operaionshort int sem_flg //operation flag};三、例子:2.1 服务器#include
SQL 触发器语句错误 求助
错误不少,看看是不是楼主的要的效果create trigger overdraft_trigger on accountfor updateas--if if exists(select 1 from inserted where balancebegininsert into borrower(customer_name,account_number)--指定列名--(--括号不用select _name,_number --指定显示的表名from depositor d, inserted i--指定一个别名使代码简洁where _number = _number--)insert into loan select account_number, branch_name from inserted--这里改改update account set balance = 0from account, insertedwhere _number = _numberend
请问各位怎样能让asp捕捉到从数据库返回的错误代码
你这样提示,不如在提交前就做一个正式的检测。 因为你提交出错后再提示,程序就已经运行了一次,然后返回,修改了,再提交,又有另外一个出错,程序再一次运行了一次,效率下降很多。 你说的取得错误代码这个是可以有的,粟子:SQL=select * from sql,conn,1,1If <> 0 errend if你可以找找ERR对象的相关资料:错误 Number: <%= %>错误信息: <%= %>出错文件: <%= %>出错行: <%= %>
发表评论