[SOLVED] how do I add a column with type array using phpMyAdmin or sql

Issue

how do I add a column with type array using phpMyAdmin
knowing that
alter table name add column listid integer array;
alter table name add column listid integer [];
not working

Solution

As mentioned in the comments, an array is not a type. You could opt to instead have a separate table which keeps the elements in the array, and let them have a foreign key referring to the original table, or parse the array into a String each time and store it as text, depending on your needs.

CREATE TABLE orders (
  id INT NOT NULL PRIMARY KEY,
  description TEXT,
  reference TEXT
  -- This is where you'd want to add your list of order lines
);

-- Instead, we'll create an orderline table referring back to the orders
CREATE TABLE orderlines (
  id INT NOT NULL PRIMARY KEY,
  description TEXT,
  order_id INT REFERENCES orders(id)
);

Now you can put your array values (which I now assume to be the order lines) in their own separate table. To query them, you could do

SELECT * FROM orders
LEFT JOIN orderlines ON orderlines.order_id = orders.id;

Which you could probably make smart enough using sub-queries to return you an array, especially within your application.

Answered By – fravolt

Answer Checked By – Pedro (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published.