---
title: "[MySQL] Declare i Trigger"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/173317-mysql-declare-i-trigger"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Gein"
published: "2008-08-12T17:26:29.000Z"
updated: "2008-08-12T18:11:37.000Z"
replies: 4
views: 465
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/173317-mysql-declare-i-trigger"
---

# [MySQL] Declare i Trigger

## #1 — Gein, 2008-08-12T17:26Z

Varför fungerar inte följande kod: 

```
delimiter //

DROP TRIGGER IF EXISTS newtransaction //

CREATE TRIGGER newtransaction AFTER INSERT ON transactions

FOR EACH ROW BEGIN

IF NEW.type = 1 THEN
	DECLARE stname VARCHAR(15);
	SELECT sname INTO stname FROM stockp WHERE stock = NEW.stock;
END IF;
END; 
//

delimiter ;
```

Jag får felet: 

> ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE stname VARCHAR(15);
> END IF;
> END' at line 6

Den verkar inte ta DECLARE i min trigger? Om jag skippar DECLARE så får jag istället det logiska felet att stname inte är deklarerad (när den tolkar SELECT ... INTO-raden).

Jag kör: mysql-server-5.0.45

Permalänk: https://www.webforum.nu/p/173317

## #2 — Gein, 2008-08-12T17:38Z

Aha, declare måste komma först i BEGIN-blocket. :r

Permalänk: https://www.webforum.nu/p/2132940

## #3 — SPiN, 2008-08-12T17:44Z

Går det bättre om du deklarerar den utanför if-satsen, kanske?

Permalänk: https://www.webforum.nu/p/2132942

## #4 — SPiN, 2008-08-12T17:44Z

Oj, vad långsam jag var. :r

Permalänk: https://www.webforum.nu/p/2132943

## #5 — Gein, 2008-08-12T18:11Z

Tack för svaret, trots allt! (y)

Permalänk: https://www.webforum.nu/p/2132959

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/173317-mysql-declare-i-trigger
