I am trying to add a trigger through phpmyadmin 4.4
I get the error:
Why is this happening? How to declare a variable?
Start with BEGIN, end with END. Put the various statements between them.
Notice in the error how it is alread providing FOR EACH ..., but it is depending on you to do the rest. See http://dev.mysql.com/doc/refman/5.7/en/triggers.html (and other pages) for the complete syntax that phpmyadmin is "helping" you generate.
While importing data i am getting error corresponding view not available in the db. But i checked in the DB that view is available . I tried manually insert into view that time its working.
Any setting to change for this?
While data importing from table to view via SSIS . I 'm getting following error "Invalid object name [Feed].[VwPharmaClaim]." This already exists. I traced the query in the profiler Quotes surrounded with the object name as ("[Feed]"."[VwPharmaClaim]").Without the quotes its working.
While I'm inserting data in 2008 version I am getting following error
Msg 208, Level 16, State 1, Line 1
Invalid object name '[Feed].[VwPharmaClaim]'
I traced the insert query in profiler
exec sp_executesql N'INSERT INTO "[Feed]"."[VwPharmaClaim]" ("PharmaKey","member_id","MemberRefID","claim_id","ndc","days_supply","refill_number","fill_dt","paid_dt","prescriber_id","allowed_amt","paid_amt","Member_amt","quantity","Import_Id","age") VALUES (#P1,#P2,#P3,#P4,#P5,#P6,#P7,#P8,#P9,#P10,#P11,#P12,#P13,#P14,#P15,#P16)',N'#P1 bigint,#P2 varchar(8000),#P3 numeric(18),#P4 varchar(8000),#P5 varchar(8000),#P6 numeric(10),#P7 int,#P8 datetime,#P9 datetime,#P10 varchar(8000),#P11 money,#P12 money,#P13 money,#P14 float,#P15 numeric(18),#P16 int',1,'000000000052',52,'085565501321 ','00472030115',5,0,'2008-06-04 00:00:00','2008-06-08 00:00:00','BO5586396 ',$10.0000,$0.0000,$10.0000,15,7,5368
OUTPUT
Msg 208, Level 16, State 1, Line 1
Invalid object name '[Feed].[VwPharmaClaim]'.
When I remove the double quotes it’s working fine
exec sp_executesql N'INSERT INTO [Feed].[VwPharmaClaim] ("PharmaKey","member_id","MemberRefID","claim_id","ndc","days_supply","refill_number","fill_dt","paid_dt","prescriber_id","allowed_amt","paid_amt","Member_amt","quantity","Import_Id","age") VALUES (#P1,#P2,#P3,#P4,#P5,#P6,#P7,#P8,#P9,#P10,#P11,#P12,#P13,#P14,#P15,#P16)',N'#P1 bigint,#P2 varchar(8000),#P3 numeric(18),#P4 varchar(8000),#P5 varchar(8000),#P6 numeric(10),#P7 int,#P8 datetime,#P9 datetime,#P10 varchar(8000),#P11 money,#P12 money,#P13 money,#P14 float,#P15 numeric(18),#P16 int',1,'000000000052',52,'085565501321 ','00472030115',5,0,'2008-06-04 00:00:00','2008-06-08 00:00:00','BO5586396 ',$10.0000,$0.0000,$10.0000,15,7,5368
OUTPUT
(1 row(s) affected)
My package developed 2005 . I have converted this package to following version in 2008.
version 9.0.30729.4462.QFE
This My error while importing data from table to view
[OLE DB Destination [185]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E37 Description: "Invalid object name '[Feed].[VwPharmaClaim]'.".
By default in SQL Server 2008 you are not allowed to use double quotes to identify database objects.
Run
ALTER DATABASE <dbname> SET QUOTED_IDENTIFIER = ON
against your destination database and then try running
SELECT * FROM "Feed"."VwPharmaClaim"
Check out http://technet.microsoft.com/en-US/library/ms174393(v=sql.105).aspx for some more info.
When you say SSIS is generating these queries, what sort of task are you using to generate them? I've never seen it produce double quote identifiers before, just curious.
I experienced this with SSIS 2013 and trying to insert to an updatable view. This view uses an 'instead of' trigger to do the insert.
In order for it to work, I had to go into the advanced editor for the destination and on the component properties tab remove the square brackets from the OpenRowset, so [dbo].[myView] becomes dbo.myView. Also, the AccessMode needs to be plain OpenRowset; fastload does not work.
I just installed MySQL 5 on my server and imported a database from another server.
Now when I tried to make a simple INSERT command with MySQL Workbench I got this from my server:
ERROR 1054: Unknown column 'Test1' in 'field list'
SQL Statement:
UPDATE `myTable`.`helpanswer` SET `Answer`=Test1 WHERE `id`='6'
When I, from a previous EDIT command, right clicked on the field "Answer" in a row, changed it, and pressed the "Apply all changes to data" button.
When I do this on the orginal server everything works fine.
Are there some setting I must change on my server to get this to work?
I dont get it why my server doesn't put "Test1" inside 'Test1' like it should...
I know I can use the UPDATE command but to be able to just right click the field and click a button saves me alot of time.
Correct query should be:
UPDATE `myTable`.`helpanswer`
SET `Answer` = 'Test1' WHERE `id`='6'
This is because Test1 is a string and must be enclosed in quotes.
MySQL is picky about quotes. Try this:
UPDATE `myTable`.`helpanswer` SET `Answer`='Test1' WHERE `id`='6'
I have loaded an UDF function into MySQL (without having selected any particular DB). It used to work well during my session but now I get the error "ERROR 1305 (42000): FUNCTION currentdatabase.myfunction does not exist" when I try to use the function with the following sql statement :
select myfunction('aaa');
I then tried to drop the function and I got the same error code :
mysql> drop function myfunction;
ERROR 1305 (42000): FUNCTION database.myfunction does not exist
if a DB is selected.
Another error code otherwise :
ERROR 1046 (3D000): No database selected
So I decided to specify again the function and I got the following error code :
CREATE FUNCTION myfunction RETURNS INT SONAME 'myfunction.so';
ERROR 1125 (HY000): Function 'myfunction' already exists
My question is: how to use again my function ?
Thanks in advance.
Note: there is no space problem like ("select myfunction ('aaa');") as reported on several other websites.
I recently encountered this issue my self and I put together a quick blog post about it:
When installing a UDF recently I got an
annoying error message, which didn't seem to want to go away. Deleting
the function before attempting to remove it did not work so I used the
following set of escalating commands to attempt to get it to
install. But back to the error for a moment:
bash > mysql -u user -p < installdb.sql
Enter password:
ERROR 1125 (HY000) at line 7: Function 'lib_mysqludf_ssdeep_info' already exists This can be
solved really simply with the following options:
Attempt
to delete the function and then reinstall it Delete the
function row from the mysql.func table and then reinstall it
Stop the MySQL server (after trying option 2), start it again and
then reinstall it
From my testing you do not need to have backups of your binary database files as #jmcejuela suggests in his answer.
Source: http://simonholywell.com/post/2012/01/mysql-udf-install-error-function-already-exists.html
I believe the problem comes from removing the .so library before dropping the function/s. The server still believes it has the functions since they appear in SELECT * FROM mysql.func but of course calling these functions fail. Somehow DROP doesn't simply remove entries in this table but also checks whether the libraries are found which makes this fail. CREATE supposedly just check first the func table which makes this fail...
The solution is to restore the func table (func.MYI, func.MYD, func.frm files under your mysql's data/mysql) to the point everything matches.
Luckily I had a backup of these files. Otherwise you will have to backup them from a new mysql installation (you could simply install locally a new server not to remove your current one)
Bottom line: do not remove the .so libraries before dropping the functions.
Got some of these errors when swapping out (not dropping) the .so library before dropping the function(s).
Restarting the server eliminated the error messages, whether the functions were successfully dropped or not. Mysqld just looked at the mysql.func table and loaded functions from the (new) .so. I know restarting the server is not always an option, but if it is, it's fast and complete.