Well that is embarasing, thank you, It always ends up being the simple things that get you.
On Sat, Oct 17, 2009 at 1:25 PM, Michael Dykman <mdyk...@gmail.com> wrote: > It appears to be a simple enough error message. Here is your trigger > you are reffering quite explicitly to credits.enabled: > > > select SUM(credits.amount) into total_credits from credits where > > credits.enabled=1 and account=new.account; > > and this table has no such column defined. debits does, but not this one > > > CREATE TABLE `credits` ( > > `account` int(11) NOT NULL, > > `date` timestamp NOT NULL default CURRENT_TIMESTAMP, > > `line_number` int(10) unsigned NOT NULL auto_increment, > > `amount` int(11) NOT NULL default '0', > > `product_code` int(11) NOT NULL default '0', > > `rep_id` int(11) NOT NULL default '0', > > `description` text collate utf8_bin NOT NULL, > > PRIMARY KEY (`line_number`) > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ; > > > - michael dykman > > > On Sat, Oct 17, 2009 at 2:20 PM, Dan Saul <daniel.s...@gmail.com> wrote: > > This is the first time I have attempted to expand beyond basic sql for > > storing data in a table like structure. So my level of knowledge is > > "familiar with basic SQL, but lacking in expanded knowledge". I expect my > > error is a newbie mistake. > > > > I have attempted to create a trigger to update another table with the > > calculated balance of two columns in two different tables. Monetary > amounts > > are stored in integer form so $6.59 would be represented as 659. The goal > > here is to move more of the funtionality into SQL where the data can > "manage > > itself" and away from application code. > > > > The following trigger inserts fine, however upon adding a row to the > > "trigger-enabled table" it recieves an error. The row inserts fine as can > be > > proved by selecting the table afterwards, but the trigger operation did > not > > complete. > > * > > The following is my trigger:* > > > > > > create trigger billing.update_account_balance after insert on > billing.debits > > for each row > > begin > > declare total_debits int; > > declare total_credits int; > > declare total_balance int; > > > > select SUM(debits.amount) into total_debits from debits where > > debits.enabled=1 and account=new.account; > > select SUM(credits.amount) into total_credits from credits where > > credits.enabled=1 and account=new.account; > > > > set total_balance = total_credits - total_debits; > > > > update accounts set accounts.balance = total_balance where > > number=new.account; > > end > > > > *The following is the error as described by PHPMyAdmin:* > > > > *SQL query:* > > > > INSERT INTO `billing`.`debits` ( `account` , > > `date` , > > `line_number` , > > `amount` , > > `product_code` , > > `rep_id` , > > `description` , > > `enabled` > > ) > > VALUES ( '1', '2009-10-04 13:05:14', NULL , '91', '3', '1', 'Service / > > Support', '1' > > ) > > > > *MySQL said:* > > #1054 - Unknown column 'credits.enabled' in 'where clause' > > > > *The following is my database structure exported by PHPMyAdmin:* > > > > CREATE TABLE `accounts` ( > > `number` int(10) unsigned NOT NULL auto_increment, > > `balance` int(11) NOT NULL default '0', > > PRIMARY KEY (`number`) > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2 ; > > > > CREATE TABLE `credits` ( > > `account` int(11) NOT NULL, > > `date` timestamp NOT NULL default CURRENT_TIMESTAMP, > > `line_number` int(10) unsigned NOT NULL auto_increment, > > `amount` int(11) NOT NULL default '0', > > `product_code` int(11) NOT NULL default '0', > > `rep_id` int(11) NOT NULL default '0', > > `description` text collate utf8_bin NOT NULL, > > PRIMARY KEY (`line_number`) > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ; > > > > CREATE TABLE `debits` ( > > `account` int(11) NOT NULL, > > `date` timestamp NOT NULL default CURRENT_TIMESTAMP, > > `line_number` int(10) unsigned NOT NULL auto_increment, > > `amount` int(11) NOT NULL default '0', > > `product_code` int(11) NOT NULL default '0', > > `rep_id` int(11) NOT NULL default '0', > > `description` text collate utf8_bin NOT NULL, > > `enabled` tinyint(1) NOT NULL default '1', > > PRIMARY KEY (`line_number`) > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=9 ; > > > > DROP TRIGGER IF EXISTS `billing`.`update_account_balance`; > > DELIMITER // > > CREATE TRIGGER `billing`.`update_account_balance` AFTER INSERT ON > > `billing`.`debits` > > FOR EACH ROW begin > > declare total_debits int; > > declare total_credits int; > > declare total_balance int; > > > > select SUM(debits.amount) into total_debits from debits where > > debits.enabled=1 and account=new.account; > > select SUM(credits.amount) into total_credits from credits where > > credits.enabled=1 and account=new.account; > > > > set total_balance = total_credits - total_debits; > > > > update accounts set accounts.balance = total_balance where > > number=new.account; > > end > > // > > DELIMITER ; > > > > CREATE TABLE `products` ( > > `id` int(11) NOT NULL auto_increment, > > `description` text collate utf8_bin NOT NULL, > > `daily_charge` int(11) NOT NULL default '0', > > PRIMARY KEY (`id`) > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=4 ; > > > > > > Thank you in advance. > > > > Dan > > > > > > -- > - michael dykman > - mdyk...@gmail.com > > "May you live every day of your life." > Jonathan Swift > > > > -- > - michael dykman > - mdyk...@gmail.com > > "May you live every day of your life." > Jonathan Swift > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: > http://lists.mysql.com/mysql?unsub=daniel.s...@gmail.com > >