---
title: "Fundering ang mysql"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/189544-fundering-ang-mysql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "saw"
published: "2012-04-02T11:26:59.000Z"
updated: "2012-04-02T17:23:14.000Z"
replies: 8
views: 610
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/189544-fundering-ang-mysql"
---

# Fundering ang mysql

## #1 — saw, 2012-04-02T11:26Z

Finns det ett defaultvärde som man kan sätta in i en tabell i mysql?
Orsak till frågan:
I tabellen t_quick_quize finns följande fält:
id, quize
i tabellen t_answer finns följande fält:
a_id(räknare),
id(skall vara samma id som id i tabellen t_quick_quize,
vyes,vno, vdontknow(alla är int).

När jag lägger in en ny fråga i   t_quick_quize och sedan skall visa upp det, så flir det fel om inte fälten vyes,vno, vdontknow har några värden.

Min lösning är, om man kan lägga in ett defaultvärde i de tre fälten (t ex 1).
Plan b är att göra en insert, kan man isåfall göra denna insert i ett steg?
Jag har läst om **LAST_INSERT_ID()** men jag är osäker på hur jag skall kunna använda den i detta fallet.

Tacksam för tips.  :stud

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

## #2 — @nders, 2012-04-02T11:36Z

Du kan sätta defaultvärden i fälten. Vad är problemet?

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

## #3 — saw, 2012-04-02T11:51Z

Hej @nders, jo om jag inte har några värden i välten så fördärvas applikationen. Hur sätter jag in defaultvärden?
Jag sitter just nu i phpMyAdmin men jag hittar inte var jag skall kunna sätta in det, kanske fel applikation?

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

## #4 — saw, 2012-04-02T11:54Z

Jag trar att jag hittade det, i MySql Administrator..

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

## #5 — @nders, 2012-04-02T11:55Z

Det ska helt klart gå att göra i phpmyadmin också.

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

## #6 — saw, 2012-04-02T12:49Z

Ojojoj.
Nu visar det sig att jag inte har tänkt helt klart.

```
//min insert i  t_quick_quize 
INSERT INTO t_quick_quize (quize) VALUES (@quize)
//här måste jag få tag på det id som skapas för att göra en insert i t_answer 
INSERT INTO t_answer (id) VALUES ( ?)<---här skall ju id:t in
```

Då kommer två frågor:
1) hur får jag lätast fram det id som skapas i t_quick_quize ?
2) kan jag köra detta i samma sql?

om jag inte gör detta kommer problemen när jag kör

```
 sql = "SELECT 
t_answer.a_id, 
t_quick_quize.id, 
t_answer.vyes, 
t_answer.vno, 
t_answer.vdontKnow, 
t_quick_quize.Quize " +
"FROM 
t_answer 
INNER JOIN 
t_quick_quize 
ON 
t_answer.id = t_quick_quize.Id 
WHERE t_quick_quize.id=@id";
```

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

## #7 — @nders, 2012-04-02T13:04Z

1) Antingen i php med [mysql_insert_id()](http://php.net/manual/en/function.mysql-insert-id.php) eller direkt i SQL med [last_insert_id()](http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id).
2) Borde gå - men det beror säkert på vilken version av MySQL man använder - åtminstone vet jag att det har varit problem i tidigare versioner. Googla lite på "MySQL multiple query execution" eller liknande.

mvh

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

## #8 — saw, 2012-04-02T13:42Z

Japp nu har det lyckats.
Jag visar det här ifall någon annan undra.
Koden är kanske inte den mest optimala men den fungerar

```
int newID = 0;
                sql = "INSERT INTO t_quick_quize (quize) VALUES
 (@quize);SELECT id FROM t_quick_quize WHERE id=last_insert_id()";
                MySqlCommand cmd = new MySqlCommand(sql, DBConn);
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.AddWithValue("@quize", txtInfo.Text);
                DBConn.Open();
                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    newID =Convert.ToInt32(rdr["id"].ToString());
                }
                DBConn.Close();
                Lifo.Text = newID.ToString();
                sql = " INSERT INTO t_answer( id ) VALUES ( @id)";
                cmd = new MySqlCommand(sql, DBConn);
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.AddWithValue("@id", newID);
                DBConn.Open();
                cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
```

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

## #9 — @nders, 2012-04-02T17:23Z

Just det, jag glömde att du inte använde php.  :)

Bra att du visade din lösning!  (y)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/189544-fundering-ang-mysql
