Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql concat i wstaw do nie działa

Użyj INSERT INTO...SELECT

insert into products(productname,proddescription,supplier,lastpurchasedate,quantityleft)
select concat('PID',pid,pname),pdesc,psupp,pdate,pquant

Możesz pominąć kolumnę productid jeśli jest to AUTO_INCREMENT kolumna.

Zastanawiałem się, dlaczego musisz wykonać select pid=last_insert_id(); kiedy pid jest IN parametr .

AKTUALIZACJA 1

DROP PROCEDURE `inserproducts`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `inserproducts`
(
   pid int,
   pname varchar(50),
   pdesc varchar(50),
   psupp varchar(50),
   pdate date,
   pquant int
)
begin

    insert into products
          (productname,
           proddescription,
           supplier,
           lastpurchasedate,
           quantityleft)
    select concat('PID',pid,pname), pdesc, psupp, pdate, pquant;

    select last_insert_id();
end$$
DELIMITER ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polecenie MySQL do wyszukiwania CSV (lub podobnej tablicy)

  2. Przedstawiamy ClusterControl 1.4.1 — wydanie ProxySQL

  3. Indeksy MySQL - jakie są najlepsze praktyki według tej tabeli i zapytań

  4. szukaj wielu słów za pomocą mysql MATCH AGAINST

  5. Narzędzie do debugowania MySQL spowalnia zapytania?